我有一个像下面这样的任务。
var task = Task<string>.Factory.StartNew(() => longrunningmethod()
.ContinueWith(a =>
longrunningmethodcompleted((Task<string>)a,
TaskScheduler.FromCurrentSynchronizationContext())));
task.Wait();
我的任务将调用 longrunning 方法,完成后将调用已完成的方法。在我的 longrunningmethod 中,我延迟了Thread.Sleep(30000)
. 当我使用 Task.wait 系统挂起并且它没有调用 longrunningmethodcompleted 方法。如果我不使用 Task.wait 一切都很好。