using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace CancellationTokenExperiments
{
class CancellationTokenTest
{
static void Main(string[] args)
{
CancellationTokenSource tokenSource = new CancellationTokenSource();
CancellationToken token = tokenSource.Token;
tokenSource.Cancel();
Task.Run(() => Console.WriteLine("Hello from Task"), token);
}
}
}
C#のcancelationTokensの概念を理解しようとしています。上記のコードは、タスクが実行される前にトークンがチェックされているため、「Hello from Task」は表示されません。C#でのキャンセルトークンの理解
しかし、私はいくつかの質問があります。
Task.Run(() => Console.WriteLine("Hello from Task"), token);
上記の文は何を意味するのでしょうか?どのように単純にConsole.WriteLine("Hello from Task")
と呼ぶかとは違う意味で?トークンを渡してTask
を取り消すことができますか?空の中括弧()
は、最初にTask.Run
の冒頭にあるのは何ですか?
- 特定のインスタンスで実行を停止できるように、上記のコードを変更するにはどうすればよいですか。
"トークンを渡すことでタスクを取り消すことができますか?" - いいえ、タスク内のコードは、実行中に取り消しトークンを検査し、取り消しが要求された場合は終了する必要があります。タスクは、キャンセル要求があるために魔法のように停止されません。 – Enigmativity
これは、同じタイトルを持っていても、重複としてマークされたものと実際には同じ質問ではありません。質問の内容と質問される特定の質問は異なります。 –