問題タブ [cancellation-token]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2490 参照

c# - キャンセルトークンの使用

キャンセルトークンを使用してタスクをキャンセルする方法を学ぼうとしています。ここでは、UnitTest を作成しましたが、動作がわかりません。

上記のテストではcts.Cancel()、メソッドを呼び出す前に を呼び出しましたCheckMeCalled。そのため、キャンセルされたときに実行されるべきではありません。しかし、それは完全に実行されています。

私はどこかでそれを読んだ:

タスクが実行されていないときにキャンセルすると、実行中の状態にはならず、呼び出したときにキャンセルされた状態になります。

しかし、ここで起こっているようには見えません。誰か説明してくれませんか?

0 投票する
1 に答える
1347 参照

c# - MSTest キャンセル メカニズム

単体テストがキャンセルされたことを理解するために使用できる、単体テスト用の CancellationToken (または [TestInitialize] のような属性) を提供するメカニズムはありますか? 私は見つけられませんでした。

0 投票する
3 に答える
14593 参照

c# - 「return」で C# Async メソッドを終了または終了する

async-awaitの方法を初めて知ったC# 5.0ので、いくつか質問があります。

  1. async入力引数または null チェックに失敗した場合にメソッドをエスケープする最良の方法は何ですか?

  2. return;Taskメソッドで使用する論理的な流れは何ですかasync(状況によっては無限ループになりました)?

  3. このシナリオに適していますCancellationTokenか?Task.Yield

0 投票する
4 に答える
12451 参照

c# - 非同期Dapperメソッドを使用したCancellationToken?

Nuget の Dapper 1.31 を使用しています。私はこの非常に単純なコードスニペットを持っています。

を押すF12QueryAsync

CancellationTokenその署名にはありません。

質問:

  • ソリューション全体でコンパイラ エラーがないと仮定して、スニペットが完全にビルド可能なのはなぜですか?
  • tokenSource.Cancel()実行時間の長い SQL クエリを生成する方法がわからないため、呼び出しによってメソッドが実際にキャンセルされるかどうかをテストできないことを許してください。.Cancel()本当にメソッドをキャンセルしてスローしOperationCancelledExceptionますか?

ありがとうございました!

0 投票する
1 に答える
116 参照

c# - CancellationToken が別の CancellationToken によって制御されるタスクのサブセットに影響を与える良い方法

キャンセル トークンを別のキャンセル トークンによって制御されるタスクのサブセットに関連付ける方法はありますか?...この例では、2 つの cancelTokenSource を作成し、1 つを他の Cancel 関数に対して登録します。画像の読み込みをキャンセルします...それらのタスクのみをキャンセルします...しかし、すべてをキャンセルすると...すべてのタスクがキャンセルされます...これを行うより良い方法はありますか? (この方法は面倒に思えます...たとえば、いつ登録を解除するか)

0 投票する
1 に答える
680 参照

c# - PLINQ 内で Cancellation Token Register メソッドを待機する方法

以下のコードでわかるように、ProcessThisEmployee は各従業員に対して呼び出されます。そのメソッド内で、操作がキャンセルされたときにサードパーティ ライブラリの Clean メソッドを呼び出します。Clean メソッドにはかなりの時間がかかるとしましょう。私がやりたいのは、ProcessThisEmployee メソッドの実行中のすべてのインスタンスの Clean メソッドが完了したときに、UI にメッセージを表示することです。これは、すべての Clean メソッドの完了を待つ必要があることを意味します。今のところ、タスクの WaitAll がありますが、すべてのキャンセルが完了するまで待機するかどうかはわかりません。何か案は?