我有一個用dotNet寫的windows服務。有一個工作服務使用各種Delegate.BeginInvokes生成工作線程。當服務崩潰時,這些線程會自動清理?如果是這樣,什麼時候?dotnet崩潰服務是否終止它自己的線程?
0
A
回答
1
所有通過你的進程創建的線程是進程中。當你的應用程序崩潰你的進程死亡,並且該進程中的所有線程突然終止。他們不會像友好一樣被終止(他們沒有得到任何放棄的信號或任何東西),他們只是被殺死了。他們可能會或可能不會得到足夠的處理器時間來完成執行 - 而是取決於他們在做什麼,以及Windows如何快速轉儲過程。
所有強大的Windows版本(2000+)都應該讓你的進程隔離,所以當它死亡時,整個進程空間被轉儲並且內存被回收。如果您在崩潰時正在訪問非託管資源,那麼整個畫面會發生變化,答案是「視情況而定」。
0
只有當服務被終止,並從內存中卸載
相關問題
- 1. 如何終止自己的Windows服務
- 2. 在linux崩潰期間線程是如何終止的?
- 3. 線程在asp.net崩潰的服務器
- 4. 自己的服務器的iOS崩潰記者
- 5. 崩潰後終止應用程序
- 6. 進程已經終止/計劃重新啓動崩潰的服務
- 7. 如何檢查線程是否終止?
- 8. Application.Exit()是否會終止後臺線程?
- 9. 線程崩潰
- 10. 防止主UI從子線程崩潰
- 11. 是否可以限制Web服務訪問它自己的Web應用程序?
- 12. 您是否應始終使用ExecutorService而不是開始自己的線程?
- 13. 獲取一個std ::線程來分離和終止自己
- 14. CoreLocation線程崩潰崩潰:com.apple.CoreLocation.ConnectionClient.0x16fcb870.events
- 15. 終止主線程,但不確保終止它產生的線程
- 16. 終止線程
- 17. Azure服務總線 - 自己的主機
- 18. 當服務停止時,所有線程都會被終止嗎?
- 19. 崩潰的NSURLConnection的線程
- 20. 服務崩潰的開始
- 21. 遠程服務崩潰時活動崩潰
- 22. mongod崩潰(終止於信號5)
- 23. 檢測進程是否崩潰(或停止)的簡單方法?
- 24. Ubuntu的單線程崩潰
- 25. Azure移動服務,應用程序崩潰(離線同步 - Android)
- 26. WCF服務:應用程序崩潰
- 27. 應用程序崩潰時,Web服務
- 28. Android MediaPlayer在它自己的類中導致應用程序崩潰
- 29. TreeView自己填充並崩潰Access
- 30. TSKILL並不總是在終端服務中終止程序
即使有線程仍在執行,服務是否會卸載? – 2008-12-17 21:20:23