會發生什麼像DB連接,打開的文件,......當.NET應用程序(而不是web應用程序)崩潰.NET應用程序崩潰,國家非託管資源的
1
A
回答
1
這取決於資源,以及如何在非託管資源該資源的端點處理它。對於數據庫連接,數據庫服務器將偵聽並等待任何消息,只要它被配置爲等待(可能不是很長),然後終止套接字。文件可能會陷入鎖定狀態(「被另一個進程使用」),但是IME極其罕見。
1
當原生(C/C++/etc)應用程序崩潰時會發生同樣的情況。
大多數情況下,操作系統會立即清理。它將關閉文件句柄,互斥鎖,網絡連接以及操作系統負責的其他任何東西。
對於操作系統未提供的其他資源(例如連接到SQL服務器),取決於哪一部分軟件負責該資源。正如Rex M提到的那樣,SQL服務器將在那裏等待連接超時,然後它將釋放它,但其他第三方軟件的行爲可能會有所不同。
如果您從一塊蹩腳的第三方軟件中獲得一些非託管資源,可能會導致問題,因爲它可能不夠聰明,無法使用超時或類似機制,並且非託管資源可能永遠無法釋放。
如果您的第三方軟件超時,它也會導致問題。例如,如果SQL服務器連接超時時間爲20分鐘,並且在2分鐘內崩潰了20次,那麼您將有20個「用完」連接,直到超時發生。你可以通過做這種事情來擺脫關係。
相關問題
- 1. 非託管C++代碼導致崩潰到.Net應用程序
- 2. 非託管dll調用崩潰一個dotnet應用程序?
- 3. 崩潰轉儲 - 使用WinDbg解析.NET應用程序中的非託管代碼崩潰
- 4. .NET應用程序中的非託管資源消耗了大量內存
- 5. .NET中「託管」與「非託管」資源的含義是什麼?
- 6. .Net中的託管和非託管資源
- 7. 當WPF應用程序關閉時關閉非託管資源
- 8. 某些國家/地區的應用程序崩潰
- 9. 運行非託管資源
- 10. 非託管資源和Dispose()
- 11. 從非託管win32程序集DLL調用託管代碼 - 崩潰
- 12. 什麼是託管資源和非託管資源?
- 13. 以線程處理非託管資源
- 14. C#使用企業庫時的非託管應用程序崩潰
- 15. 玩家在應用程序中崩潰
- 16. 非託管導出(DLLExport)崩潰
- 17. 如何在非託管C++應用程序中託管許可的.Net控件?
- 18. UIWebView在資源加載時崩潰的應用程序
- 19. 調用嵌入式資源時應用程序崩潰
- 20. 非託管堆.NET應用程序的大小
- 21. .NET應用程序的經驗突然非託管內存
- 22. Android:非崩潰應用程序
- 23. 應用程序崩潰,除非在Xcode
- 24. .NET應用程序崩潰除非重命名
- 25. 在混合C++ .NET應用程序中強調託管還是非託管?
- 26. UWP/Win2D - 應用程序崩潰,而裝載帆布資源
- 27. 從互聯網下載資源時iOS應用程序崩潰
- 28. 管理應用程序崩潰
- 29. 應用程序崩潰報告起源
- 30. Windows資源管理器一直崩潰