有没有办法将任务 ID 传递给调用函数?
实际上,我Run
在一个单独的文件中定义了一个函数,它假设在完成时调用一个callback
函数。我希望这个函数与任务无关(即不想在其中使用 Task.CurrentId)
X.cs:
void Run(object userState)
{
.
.
.
callback(userState);
}
回调函数的目的是在我的情况下执行清理任务,即释放我存储在任务池中的任务的引用。
Y.cs
void LaunchTask()
{
.
.
.
Task task = Task.Factory.StartNew(() => Run(???)); //How to pass Task ID here as an argument yo Run?
TaskPool[task.Id] = task;
}
void callback(object userState)
{
.
.
.
A a = (A)userState;
var taskID = a.ID;
TaskPool.Remove(taskID); //Free the reference of the task from the pool
}
现在我的问题是我将如何将任务 IDRun
作为userState
.