在单独的进程中运行代码

Posted

技术标签:

【中文标题】在单独的进程中运行代码【英文标题】:Running code in a separate process 【发布时间】:2012-10-24 12:13:38 【问题描述】:

我想知道如何设置一个操作(方法、代码块等)以在主进程崩溃时其他进程仍将运行的方式在不同的进程(而不是线程)上运行。不可监控,但正在运行。

我想我可以在不同的应用程序中“编译”代码块,然后执行结果,但这不会太优雅。有没有更好的办法?

【问题讨论】:

.NET 应用程序域正是出于这个原因:***.com/questions/1094478/… 如果代码可能会从 3rd 方库中抛出 SOE,则不会。在这种情况下 AppDomain 没有帮助 - 整个过程被杀死。而杀死辅助进程并没有那么糟糕。 【参考方案1】:

另一种选择是使用相同的 app/exe 并传递命令行参数来表示在第二个实例中运行什么。

【讨论】:

【参考方案2】:

除非您按照 ms 的意图运行单独的 exe,否则创建一个新的 appdomain 并在其中运行其他代码。 http://msdn.microsoft.com/en-us/library/system.appdomain.aspx

【讨论】:

这并不能解决 OP 的问题。这是一个半措施,并不能真正解决崩溃问题。

以上是关于在单独的进程中运行代码的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记—多线程

单独运行子进程时会影响原始dll

在单独的进程中打开 url

AppDomain 是不是等同于 .NET 代码的进程?

将 PHP 调用的 .exe 程序(作为单独的进程,而不是在 PHP 中运行)的输出发送回 iPhone 客户端的可能方法

PySide2 和 Matplotlib:如何让 MatPlotLib 在单独的进程中运行? ..因为它不能在单独的线程中运行