是否可以将Task <T>(带有返回值)传递给现有(即已经运行的)线程

Ger*_*ard 0 c# wpf task synchronizationcontext async-await

在wpf中,我有两个不同线程的窗口.
从窗口A'在线程中AI想要在窗口B'的Tread B中启动一个任务并等待线程A中的返回值.
它假设它可能但是如何?
你知道一个例子吗?

Ste*_*ary 5

多个WPF UI线程是一种非常高级的方案.

您应该可以通过让线程B公开任务工厂来完成它:

 TaskFactory _taskFactory;
 public TaskFactory TaskFactory { get { return _taskFactory; } }
Run Code Online (Sandbox Code Playgroud)

在线程B的创业公司的某些时候做这样的事情:

 // Startup code running on Thread B
 _taskFactory = new TaskFactory(
     TaskScheduler.FromCurrentSynchronizationContext());
Run Code Online (Sandbox Code Playgroud)

然后你可以从线程A使用工厂,允许线程A(或任何人)将工作排队到线程B:

 await _threadB.TaskFactory.StartNew(() =>
 {
   ...
 });
Run Code Online (Sandbox Code Playgroud)