将工作委托给子流程的最佳方式?

时间:2013-06-06 11:04:03

标签: c# remoting .net-remoting

我需要在UI线程中做很多工作。这项工作消耗了大量的CPU和内存资源。在当前的实现中,我使用Dispatcher.BeginInvoke()方法,但它使我的应用程序被冻结。

如果我将此作业委托给没有GUI的子进程怎么办?主进程运行子进程。在主应用程序向子进程发送一些命令之后,子进程做了一些工作并将结果对象返回给主进程?

如何在主机和子进程之间进行通信?我知道.NET远程处理(编组),但它是过时的方法(或不是?)。

谢谢,抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

我已经创建了一个子进程管理库,其中由于双向WCF管道而监视父进程和子进程。如果子进程终止或父进程终止,则通知对方。 还有一个调试器助手可以自动将VS调试器连接到已启动的子进程

您在流程之间拥有可扩展的通信基础架构。不需要WCF知识。

项目网站:

http://www.crawler-lib.net/child-processes

NuGet包:

https://www.nuget.org/packages/ChildProcesses https://www.nuget.org/packages/ChildProcesses.VisualStudioDebug/