.net での非同期プログラミングに関するいくつかのテストを開始していますが、今は cancelToken を使用して長い操作をキャンセルしようとしています。
だから私は次のコードを持っています:
CancellationTokenSource cancelationToken = new CancellationTokenSource();
操作を開始するためのマイ ボタン
private void button2_Click(object sender, EventArgs e)
{
cancelationToken.Cancel(true);
}
private void button1_Click(object sender, EventArgs e)
{
StartOperation(cancelationToken.Token);
}
そして最後に私の操作
private async void StartOperation(CancellationToken cancelToken)
{
await GetItensFromDatabase2(cancelToken);
}
public static Task<int> GetItensFromDatabase(CancellationToken cancelToken)
{
//cancelToken.Register( () => Console.WriteLine("Canceled") );
return Task.Factory.StartNew<int>(() =>
{
int result = 0;
cancelToken.ThrowIfCancellationRequested();
result = MyLongOperation(); // Simulates my operation -> I want to cancel while this operation is still running
return result;
}, cancelToken);
}
では、MyLongOperation() メソッドをキャンセルする方法は? することは可能ですか?