CancellationToken

キャンセルが要求された時の処理は、CancellationToken構造体のプロパティやメソッドを使いつつ、自前で処理を書かないといけない。

CancellationToken 構造体 (System.Threading) | Microsoft Docs

MainClass.csで、

今回は、CancellationToken.IsCancellationRequestedを見て、trueならreturnで終了しちゃう。
2秒後と4秒後にそれぞれチェックする。
あと意味は無いけど、今回はcts.TokenをCancellationToken構造体オブジェクトtokenに格納して使ってる。
tokenをそのままラムダ式で使えるのは、

Chapter6 ラムダ式(前編)(4/9) - @IT

ラムダ式は外部変数をキャプチャできるから。

3秒後にキャンセルなので、4秒後のCancel2で終了する。
3秒後にキャンセルなので、4秒後のCancel2で終了する。

3秒後にキャンセルなので、4秒後のCancel2で終了する。

Sample/dotnet/CancellationToken/CancellationToken/src/CancellationToken_ at master · bg1bgst333/Sample · GitHub