至少从我的角度来看,我必须处理一个奇怪的问题。我使用任务等到变量获得特定值,然后再次在 ui 线程上运行 Continue 部分。
现在的问题是,在我调用 StartNew() 之前,在调用内部 ManagedThreadId 是相同的,它会冻结我的 UI。
这是我的代码:
// ManagedThreadId here
Task.Factory.StartNew(() =>
{
// and here are the same.
while (isClosing)
{
Thread.Sleep(50);
}
}).ContinueWith((finishedTask) =>
{
if (currentContainer != null)
{
window = currentContainer;
}
else
{
window = CreateBallonWindow();
window.Show();
}
window.Activate();
}, TaskScheduler.FromCurrentSynchronizationContext());
想法?
谢谢克里斯托夫
编辑:
对我来说最有趣的是为什么会发生这种情况而不是如何解决这个问题。我想了解那里发生了什么...