【发布时间】:2013-07-05 22:14:10
【问题描述】:
我有如下任务。
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,一切都会顺利进行。
【问题讨论】:
-
对我来说听起来像是死锁,您是在单线程环境中执行此操作吗?我以前在 Windows Phone 开发中看到过这种情况。 (related)
标签: c#-4.0 task-parallel-library