簡體   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