【发布时间】:2015-12-27 18:01:01
【问题描述】:
我必须实现返回任务的方法。
Task<string> Method() {}
这个函数的内部实现我要打开窗口
MyWindow form = new MyWindow();
form.ShowDialog();
return form.MyProperty;
当我试图打开时,我得到了
“调用线程必须是STA,因为很多UI组件都需要这个。”
当我尝试时
var task= = Task.Factory.StartNew<string>(() =>
{
MyWindow form = new MyWindow();
form.ShowDialog();
return form.MyProperty;
},CancellationToken.None,
TaskCreationOptions.None,
TaskScheduler.FromCurrentSynchronizationContext());
我明白了
“当前的 SynchronizationContext 不能用作 TaskScheduler”。
我做错了什么?我对 C# 中的线程不太了解。
【问题讨论】:
-
I do not have good understanding of threading in C#我想这是问题的一部分。线程非常困难。
标签: c# wpf multithreading