我需要在 UI 线程中做很多工作。这项工作会消耗大量的 CPU 和内存资源。在当前实现中,我使用 Dispatcher.BeginInvoke() 方法,但它使我的应用程序冻结。
如果我将这项工作委托给没有 GUI 的子进程怎么办?主进程运行子进程。在那个主应用程序向子进程发送一些命令之后,子进程做一些工作并将结果对象返回给主机进程?
主机和子进程之间如何通信?我知道 .NET 远程处理(编组),但它是过时的方法(或不是?)。
感谢和抱歉我的英语不好。
我需要在 UI 线程中做很多工作。这项工作会消耗大量的 CPU 和内存资源。在当前实现中,我使用 Dispatcher.BeginInvoke() 方法,但它使我的应用程序冻结。
如果我将这项工作委托给没有 GUI 的子进程怎么办?主进程运行子进程。在那个主应用程序向子进程发送一些命令之后,子进程做一些工作并将结果对象返回给主机进程?
主机和子进程之间如何通信?我知道 .NET 远程处理(编组),但它是过时的方法(或不是?)。
感谢和抱歉我的英语不好。
我制作了一个子进程管理库,其中父进程和子进程通过双向 WCF 管道进行监控。如果子进程终止或父进程相互终止,则会收到通知。还有一个调试器助手可用,它自动将 VS 调试器附加到启动的子进程
您在进程之间拥有可扩展的通信基础设施。无需 WCF 知识。
项目地点:
http://www.crawler-lib.net/child-processes
NuGet 包:
https://www.nuget.org/packages/ChildProcesses https://www.nuget.org/packages/ChildProcesses.VisualStudioDebug/