我需要在UI线程中做很多工作。这项工作消耗了大量的CPU和内存资源。在当前的实现中,我使用Dispatcher.BeginInvoke()方法,但它使我的应用程序被冻结。
如果我将此作业委托给没有GUI的子进程怎么办?主进程运行子进程。在主应用程序向子进程发送一些命令之后,子进程做了一些工作并将结果对象返回给主进程?
如何在主机和子进程之间进行通信?我知道.NET远程处理(编组),但它是过时的方法(或不是?)。
谢谢,抱歉我的英语不好。
答案 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/