當我在aspx的頁面1用以下方式開啟了執行緒myThread1,關閉頁面后,它還會繼續運行(w3wp行程未結束,它都會繼續運行)。
ParameterizedThreadStart ParStart = new ParameterizedThreadStart(DoSomething);
Thread myThread = new Thread(ParStart);
myThread.Name = "myThread1";
myThread.Start();
如何在其它頁面獲取到行程myThread1的狀態,并可以控制(暫停、掛起、結束)它?
uj5u.com熱心網友回復:
在global.aspx的application start里面定義這個執行緒myThread在A.aspx里創建執行緒并啟動
在B.aspx里控制它,如
if(myThread!=null)
{
myThread.Abort(); //強制結束
}
uj5u.com熱心網友回復:
放到全域檔案不方便,如果多個頁面都可能創建執行緒的話,這樣管理不方便。
可不可以列出w3wp行程里所有執行緒,做個串列,手工決定掛起還是結束。
參考:
https://blog.csdn.net/wwwsq/article/details/76537788
uj5u.com熱心網友回復:
查到了控制行程的方法:[.NET] Suspend Process 暫停批次執行
https://dotblogs.com.tw/stanley14/2016/01/19/145355
.net - Suspend Process in C# - Stack Overflow
https://stackoverflow.com/questions/71257/suspend-process-in-c-sharp
執行緒的還在研究中
uj5u.com熱心網友回復:
multithreading - Killing/aborting a specific thread using it's ID in c# - Stack Overflow
https://stackoverflow.com/questions/28295619/killing-aborting-a-specific-thread-using-its-id-in-c-sharp
用Abort()太危險,可能會導致整個行程中斷,用掛起即可,參考這個解決了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/104733.html
標籤:ASP.NET
上一篇:C# 設定列印機共享 能否實作? ,不是設定默認列印機
下一篇:C#實際經緯度轉換成螢屏坐標
