.net – 如何重新加载经常崩溃的第三方DLL
发布时间:2020-12-14 05:47:33 所属栏目:Windows 来源:网络整理
导读:我正在使用以非托管C编写的第三方DLL来控制我们拥有的一些硬件. 不幸的是,这个DLL偶尔会崩溃,我的任务是让它自动“重新加载”.我不太确定如何获得最佳效果. 我的项目使用C .Net 2.0(2005).我将第三方的东西包装在一个单独的DLL中.我一直在尝试FreeLibrary()
我正在使用以非托管C编写的第三方DLL来控制我们拥有的一些硬件.
不幸的是,这个DLL偶尔会崩溃,我的任务是让它自动“重新加载”.我不太确定如何获得最佳效果. 我的项目使用C .Net 2.0(2005).我将第三方的东西包装在一个单独的DLL中.我一直在尝试FreeLibrary()和LoadLibrary().但是,当我使用FreeLibrary()时,仍会分配一些内部DLL依赖项,而LoadLibrary()会因内存损坏而导致崩溃. 建议的另一种方法是使用.NET远程接口重构整个项目.它会更容易杀死另一个进程并重新启动它,但这将是很多工作. 有什么建议?指针?提示? 解决方法
最有效的方法是根本不在应用程序的进程中加载??该DLL.相反,创建第二个进程,其唯一的工作是代表您的应用程序使用该DLL.您可以使用共享内存区域,本地套接字或其他IPC机制来控制代理进程.
这样,当有问题的DLL崩溃时,您可以简单地允许代理进程死掉,而不必担心(几乎不可能)尝试确保DLL没有损坏任何重要的任务.您的主进程只需要启动代理进程的新实例并继续. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 用于在Zune中添加播放列表的API
- 需要在Windows C#/ Net中禁用屏幕保护程序/屏幕锁
- ansible控制windows插件安装及运行error与解决方
- windows-server-2012-r2 – 如果WSUS服务器上的磁
- xaml – 与VariableSizedWrapGrid结合的ISupport
- windows – 使用TortoiseSVN时,从提交中排除Ecli
- 数组 – 如何在没有ShareMem Unit的情况下将动态
- 服务器安全设置技术实例系列教程--系统服务篇
- windows – 如何在PowerShell中捕获异常?
- windows – 如何通过命令行查询我的系统以查看是
热点阅读