在我的ASP.NET应用程序中,我会在堆栈中调用以下代码:
Public Shared Sub Larma(ByVal personId As Integer)
Dim thread As New System.Threading.Thread(New ParametrizedThreadStart(AddressOf Larma_Thread))
thread.Start(personId)
End Sub
Private Shared Sub Larma_Thread(ByVal personId As Integer)
StartaLarm(personId)
Thread.Sleep(1000 * 30)
StoppaLarm(personId)
End Sub
当此线程正在运行时,将处理其余请求并将响应发送到客户端。但是,由于我从不调用thread.Abort()
或类似的东西,而且我对ASP.NET中的线程非常缺乏经验,我担心我会因内存泄漏或其他线程问题而开放。
在Larma_Thread
完成运行后,我从上面的代码开始的线程会发生什么?
答案 0 :(得分:1)
线程代码完成执行后,线程将被停止并回收其资源。
答案 1 :(得分:1)
一旦完成工作,线程将被终止。
请注意,线程也可能在您的工作完成之前终止我IIS确定它需要回收ASP.NET工作线程。