【发布时间】:2011-12-20 11:49:53
【问题描述】:
我有一个长时间运行的任务,它使用回调以增量方式提供数据(而不是最后的单个 ContinueWith() 回调)。
我希望能够在此回调中将 Task 对象传回用于任务识别目的(使用 Task.CurrentId)
但是,我不知道如何将 Task 对象传递给任务委托。执行此操作似乎没有重载,并且我不能使用闭包来执行此操作,因为此时未定义任务对象。
例如。
public Task StartDoingSomeStuff(CallbackDelegate callback)
{
Task task = Task.Factory.StartNew(() =>
{
while(whatever)
{
var results = DoSomeStuff();
callback(results, task); //CS0165. How do I get hold of the task?
}
});
return task;
}
给予:
错误 CS0165:使用未分配的局部变量“任务”
【问题讨论】:
标签: c# callback task task-parallel-library