我有一個使用C++庫的.net應用程序。在應用程序中,您可以運行多個作業,每個作業使用C++庫進行一些計算。問題是,C++對象在作業之間共享,我想避免它。我能想到的唯一方法是將每個任務作爲一個單獨的過程來運行。有沒有更好的方法來做到這一點?就像跑在不同的範圍內在.NET中獨立運行C++庫
0
A
回答
1
答案是是的,但這並不容易。
AppDomain沒有爲本機代碼提供隔離,所以您不能將它用於您的目標。每個非託管dll每個進程加載一次,而不是每個AppDomain。
您可以使用WinAPI LoadLibrary()
函數手動多次加載您的庫。加載的庫的每個副本可以在具有安全線程上下文的單獨線程中使用。 Here是如何從動態加載庫調用函數的描述。不要忘記撥打FreeLibrary()
來釋放資源。
相關問題
- 1. 運行在獨立存儲
- 2. 獨立運行的文本行在獨立線程
- 3. 在cron中的Django獨立運行
- 4. 在Gentoo中獨立運行Apache Archiva?
- 5. 運行Silverlight 3獨立版
- 6. XAMPP apache獨立運行MySQL
- 7. WildFly獨立不運行
- 8. 運行javascript獨立引擎?
- 9. Unix/C中的數據庫獨立性
- 10. 在Windows 7上獨立運行AntlrWorks2
- 11. Ruby腳本在vps上獨立運行
- 12. .NET獨立可執行文件
- 13. 如何在C#.NET中使獨立的軟件解決方案
- 14. C#獨立WebDAV
- 15. 創建.NET 2.0獨立WebService
- 16. 獨立.NET應用程序
- 17. 獨立於C數學庫和平臺獨立的Python數學庫?
- 18. 在Python中並行運行2+不同的獨立類方法
- 19. C++ std庫平臺是獨立的嗎?
- 20. 在.net運行庫中打開explorer.exe
- 21. 獨立數據庫
- 22. 構建獨立庫
- 23. 獨立斷言庫?
- 24. 獨立共享庫
- 25. 在.NET C中運行開源項目#
- 26. 運行在.NET和C++中的進程
- 27. Google App Engine數據庫代碼 - 獨立於網站運行
- 28. Spring運行獨立的線程
- 29. 通過cmd運行硒獨立腳本
- 30. 運行多個彼此獨立的WebBrowsers
AppdDomain? https://msdn.microsoft.com/en-us/library/system.appdomain(v=vs.110).aspx – Matas
@Matas C++是.NET應用程序域之間共享的,不是嗎? – MistyK
@Matas,恐怕AppDomain只能正確隔離.NET代碼,對本地代碼沒有多大幫助。在處理COM對象時,我遇到了這樣的隔離問題。 –