簡體   English   中英

dotnet崩潰服務是否終止其自己的線程?

[英]Does a dotnet crashing service terminate its own threads?

我有一個用dotNet編寫的Windows服務。 有一個工作器服務,它使用各種Delegate.BeginInvokes產生工作器線程。 服務崩潰時,這些線程是否將自動清除? 如果是這樣,什么時候?

您的進程創建的所有線程都在該進程內部。 當應用程序崩潰時,進程終止,並且該進程中的所有線程突然終止。 它們不會像友善者那樣終止(它們不會收到中止信號或其他任何信號),它們只是被殺死。 他們可能有或沒有獲得足夠的處理器時間來完成執行-取決於他們在做什么以及Windows轉儲進程的速度。

Windows(2000+)的所有健壯版本都應將您的進程隔離開,因此當它死時,整個進程空間將被轉儲並回收內存。 如果您在崩潰時正在訪問非托管資源,那么整個情況將發生變化,答案是“取決於情況”。

僅當服務終止並從內存中卸載時

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM