繁体   English   中英

托管WPF插件跨进程问题

[英]Hosting WPF plugin cross-process issue

我使用类似于http://www.codeproject.com/Articles/516431/Baktun-Shell-Hosting-WPF-Child-Windows-in-的方法,通过AddInHost在另一个进程中托管WPF应用程序(插件)来自HwndHost)课。

只要我不暂停子进程,这个工作正常。 如果我这样做,那么父进程也会被冻结。 原因是父/子进程在不同进程之间共享相同(同步)输入队列: 好或坏 - SetParent()win32 API

在我使用SetParent Win32函数暂停插件进程之前,我已经尝试将这两个进程分离,但即使插件与主机应用程序分离,也无助于解决问题:

public static void Decouple(HwndHost hwndHost)
{
  SetParent(hwndHost.Handle, IntPtr.Zero);
}

我在这里缺少什么想法来分离这两个进程,以便它们不再共享相同的输入队列?

对我来说,解决方案是使用AttachThreadInput Win32 API函数来分离插件HwndHost输入队列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM