C# 在非托管C++/CLI应用程序

C# 在非托管C++/CLI应用程序,c#,wpf,dispatcher,hwndsource,C#,Wpf,Dispatcher,Hwndsource,我有一个WPF日志查看器用户控件,它通过命名管道接收日志消息。管道消息在线程池线程上接收和处理,然后我将其传递给UI,以便通过Application.Current.Dispatcher.Invoke调用显示。在.Net主机应用程序中运行时,它的效果非常好 当我使用HwndSource在非托管C++/CLI应用程序中宿主控件时,application.Current为null。在这种情况下,如何在UI线程上执行代码?@J..:您建议的副本似乎没有包含如何在该上下文中获取Dispatcher对象的

我有一个WPF日志查看器用户控件,它通过命名管道接收日志消息。管道消息在线程池线程上接收和处理,然后我将其传递给UI,以便通过Application.Current.Dispatcher.Invoke调用显示。在.Net主机应用程序中运行时,它的效果非常好


当我使用HwndSource在非托管C++/CLI应用程序中宿主控件时,application.Current为null。在这种情况下,如何在UI线程上执行代码?

@J..:您建议的副本似乎没有包含如何在该上下文中获取
Dispatcher
对象的信息。致OP:你的问题不完整,没有一个很好的例子来清楚地说明你的情况。如果在确定WPF对象在UI线程中执行时,在WPF对象中捕获了
Dispatcher.CurrentDispatcher
,则以后可以将该
Dispatcher
对象用于
Invoke()
。如果没有一个好的MCVE,就不能说是肯定的。C++ + CLI不是“非托管”,C++是另一方面,是一种非托管语言。是,C++/CLI不是非托管的。我正在从非托管MFC(C++)应用程序调用WPF控件。我会添加一个例子来说明这个问题,只要我把一个放在一起。然而,归根结底是我最后一段的问题。当Application.Current为null时,如何访问WPF UI线程?