Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在控制台应用程序或类库中模拟或以某种方式创建WPF UI线程吗?_C#_Wpf_Api_Task_Ui Thread - Fatal编程技术网

C# 我可以在控制台应用程序或类库中模拟或以某种方式创建WPF UI线程吗?

C# 我可以在控制台应用程序或类库中模拟或以某种方式创建WPF UI线程吗?,c#,wpf,api,task,ui-thread,C#,Wpf,Api,Task,Ui Thread,我必须使用一个外部API,无论出于何种原因,只要它被初始化并在WPF应用程序的UI线程上运行,它就可以工作。如果我启动了一个即使在WPF测试应用程序中也不使用UI同步上下文的任务/线程,那么API将无法工作 我需要使它在控制台应用程序、Windows服务、类库中工作……但不能在WPF应用程序中工作。这对我在控制台应用程序中工作很有效 我不确定您的案例是否需要Dispatcher,或者代码只是需要STA公寓状态 class Program { static void Main(string

我必须使用一个外部API,无论出于何种原因,只要它被初始化并在WPF应用程序的UI线程上运行,它就可以工作。如果我启动了一个即使在WPF测试应用程序中也不使用UI同步上下文的任务/线程,那么API将无法工作


我需要使它在控制台应用程序、Windows服务、类库中工作……但不能在WPF应用程序中工作。

这对我在控制台应用程序中工作很有效

我不确定您的案例是否需要
Dispatcher
,或者代码只是需要STA公寓状态

class Program
{
    static void Main(string[] args)
    {
        var thread = new Thread(() =>
        {
            Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
            {
                Console.WriteLine("Hello world from Dispatcher");
            }));

            Dispatcher.Run();
        });

        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();
        thread.Join();
    }
}
您只需添加
WindowsBase.dll
调度程序的引用即可