我不确定线程​​如何工作。

这是我的代码。单击发送按钮后:

protected void BtnSend_Click(object sender, EventArgs e)
{
    Thread threadA = new Thread(SendSMS);
    threadA.Start();
}

protected void SendSMS()
{
    //some validations here
    Thread threadB = new Thread(loadingScreen);
    threadB.Start();
    threadB.Join();
    //code that actually sends the required Mail
    threadB.Stop();
    loading.Visible = false;
}

threadB正在调用此方法,该方法基本上是一个div(称为loading),具有一个div加载,使用户无法按屏幕上的任何键:
protected void loadingScreen()
{
    loading.Visible = true;
}

现在正在发送邮件,但是加载屏幕(div)变得不可见。
我究竟做错了什么?

最佳答案

在编写ASP.NET与富客户端应用程序时必须重新考虑。简而言之(实际上确实很短),Web浏览器(客户端)将请求发送到服务器。服务器处理该请求(该部分是您后面的代码),然后将结果返回到Web浏览器。

当您在背后的代码中显示DIV时,请做一些工作,然后再次将其隐藏,只有结果会到达Web浏览器。

有多种方法可以实现所需的光学效果,但是必须首先了解ASP.NET的生命周期。例如,启动here

关于c# - 启动,停止线程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17783831/

10-12 14:19