【发布时间】:2014-08-22 22:27:37
【问题描述】:
我有几个超级易碎的第 3 方 DLL。它们有时会挂起并且永远不会返回,或者有时会抛出奇怪的异常,从而影响整个过程。
我想移动这些 DLL,然后在单独的子进程中加载。这样一来,我就不必执行讨厌的 Thread.Abort 了,我可以干净利落地关闭该进程,然后在需要时重新生成它。
所以我的父应用程序接收到需要由某些第三方 DLL 处理的文件列表。我基本上需要将这些传递给新的子进程,让它处理文件,然后与父进程通信它是成功的。如果 sh*t 击中风扇并重新生成,我还必须能够降低该过程。这些文件以恒定流的形式出现,因此每次我获取文件时都生成一个进程是不可能的,我希望它一直存在并且只接受请求。
现在我正在从父进程生成子进程,然后尝试使用内存映射文件来共享文件/工作。仅传递所述文件的位置并在处理时以某种方式获得响应会更容易吗?
这里有什么好的策略...
【问题讨论】:
标签: c# process ipc named-pipes memory-mapped-files