我想出去一个网关,获取数据,然后在UI线程上返回。 ContinueWith运行,但网关从来没有?Task.Factory.StartNew无法启动?
ILogonResult result;
Task.Factory
.StartNew(() =>
{
result = Gateway.Authenticate(a, b);
})
.ContinueWith(task =>
{
TaskScheduler.FromCurrentSynchronizationContext();
DoSomeUI(result);
}
);
的背景是在一个错误的地方在这里,应该是在'ContinueWith' ... – 2013-05-09 18:33:13
参数我看到很多在这里的问题,但真的有没有足够的信息来回答你的问题。 1)你不应该在任务中设置一个'result'变量,你应该返回结果;然后继续可以从'task.Result'读取值。 2)你的'fromUIContext'在错误的地方;您希望它作为“ContinueWith”的第二个参数来使UI线程中的延续运行。 'DoSomeUI'也应该被赋予任务的结果作为参数。另外,Result的类型是什么?不知道用'Authenticate'来说可能会发生什么很难说。 – Servy 2013-05-09 18:33:43
另外,我打算用我的心理调试技术来说'结果'是一个'任务',并且你开始了一个任务,开始一项任务;它在完成任务开始时完成,而不是当它开始的任务实际完成时完成,这就是继续似乎马上运行的原因。 –
Servy
2013-05-09 18:34:59