静的メソッドをタスクとして呼び出す非同期メソッドOnValueChange
があり、メソッドは Iprogress インターフェイスの助けを借りて GUI を更新し、メソッドは画像を返します。
public async void OnValueChange(object sender, EventArgs e)
{
var progress = new Progress<int>(i => ProgresBar.Value = i);
Image im = await Task.Factory.StartNew(() => MyStaticClass.MyStaticFunction(progress),
TaskCreationOptions.LongRunning);
Picture = im;
}
場合によっては、OnValueChange 関数を短時間で頻繁に呼び出していますが、一度に 1 つのタスクだけを実行したいです。
特定のメソッドを持つタスクが既に実行されているかどうかを確認する最も効率的な方法は何ですか?