我的Windows应用程序具有选项卡式界面。每个选项卡都会呈现一些UI内容。众所周知,如果我在主线程中执行非常耗时的for循环而不让其他人处理任何Windows消息,则该应用程序将为frozen。在冻结期间,我无法切换标签。
我的灵感来自Google Chrome的多进程架构。我尝试使用SetParent
至embed a process into another process。更具体地说:进程A是主进程。它可以创建无限的工作进程。每个工作进程都有自己的消息循环。如果进程B被冻结,则不应冻结进程A和任何其他工作进程。
实际上,我错了:如果我单击按钮工作进程B来在主线程中做很多UI工作而不中断,那么不仅阻塞了进程B的UI,而且阻塞了进程A的UI,直到我的测试代码结束。
有人可以和我分享一些灯光吗?
[您正在尝试做的事,嗯,要做好就很难了。我建议您先阅读Raymond Chen的文章:Is it legal to call have a cross-process parent/child or owner/owned window relationship