System.Threading.Tasks.Task myTask = System.Threading.Tasks.Task.Factory.StartNew(() => TestMethodRefresh());
myTask.ContinueWith(() => TestMethodPrint(null), System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext);
private void TestMethodPrint(System.Threading.Tasks.Task task) {
testDiv.InnerHtml = "from continue with";
}
我正在尝试使用在.net framework 4.0 vb.net中运行良好的代码,但我无法在asp.net .net framework 4.5中使用它。我不确定这意味着它不带0个参数。我尝试在lamba中提供额外的参数,但它只是说它不需要那些额外数量的参数。
答案 0 :(得分:2)
编译器告诉你错误,因为你调用.ContinueWith并给它一个委托,它接受0个参数,而.ContinueWith期望Action<Task>
不是Action
。要解决您的问题,请按以下方式更改代码:
Task myTask = Task.Factory.StartNew(() => TestMethodRefresh());
myTask.ContinueWith((t) => TestMethodPrint(null), new CancellationToken());
其他重载可能如下所示:
Task myTask = Task.Factory.StartNew(() => { });
myTask.ContinueWith((s, o) => TestMethodPrint(null), new object(), TaskScheduler.FromCurrentSynchronizationContext());
您在ContinueWith中接收的参数(t)是上一个任务。查看MSDN了解详情。