呼び出し元の関数にタスク 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
}
今私の問題は、タスクIDをRun
関数の一部として渡す方法ですuserState
。