将工作委派给子进程的最佳方式



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

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

如何在主进程和子进程之间通信?我知道。net远程处理(封送处理),但它过时的方法(或不是?)。

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

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

项目网站:http://www.crawler-lib.net/child-processes

NuGet包:

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

最新更新