問題タブ [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.
c# - タスクが期待どおりにキャンセルされない
次のシナリオが得られました。
IMO の予想される動作は、Task.Delay(2500)が処理された後にタスクの操作がほとんどキャンセルされることです。
しかし、コンソールは印刷しています:
これは単なるバグのように感じます。CancellationTokenをパラメーターとしてTask.Delay -Function に追加すると、期待どおりに機能します。
では、タスク内の関数がTask.Delayを使用している場合、キャンセルを処理する方法はわかりません。
c# - リアクティブ拡張のシリアル化されたタスクごとにキャンセル可能
Rx 拡張ソリューションで別の質問に答えようとしました。ソリューションを作成しているときに、奇妙なことがわかりました。
キャンセルのタイムアウトに問題があります。どういうわけか、3 番目のサイクルが発生している場合 (既に ~30 ミリ秒待機しています)、ReadNext
毎回キャンセルされるわけではありません。
印刷物をチェックしてください:
確かに、25ミリ秒後にキャンセルトークンが確実にキャンセルされるか、バグの原因となる他の何かを他のスケジューラでリッスンする必要がありますか?
編集
スリープの順序を 1 つずつアップグレードすると (上記のコメント付きのコードを確認してください)、動作します。問題は、Thread.Sleep
十分に正確ではないことです。
c# - CancellationToken.ThrowIfCancellationRequested がスローされない
タスクベースの非同期操作を実装するための非常に単純なアプリを作成しました。
クライアント コードは、Task を返すメソッドを呼び出します。そのメソッドに CancellationToken を渡すのですが、途中で CancellationToken.ThrowIfCancellationRequested メソッドを呼び出しても、キャンセルすると OperationCancelledException がスローされることはありません。
自分でテストしたい場合は、ここからソリューション全体をダウンロードできます: https://github.com/stevehemond/asynctap-example
コードは次のとおりです。
CancellationToken を Tasks に渡すことについて、私が理解していないことがあるはずです...何がわからないのですか。
c# - キャンセルトークンをタスクに供給しても何も起こりませんか?
タスクに供給されたトークンを削除できるため、これらの例はキャンセル トークンとは何の関係もないように見えますが、結果は同じです。私の質問は次のとおりです: キャンセル トークンは何のためのもので、なぜ悪い例なのですか? 私は何かを逃しています..?:)
コード例 2: https://msdn.microsoft.com/en-us/library/system.threading.cancellationtoken(v=vs.110).aspx
c# - すべての非同期タスクをキャンセル
現在何が実行されているかを知らずに、すべての非同期メソッドをキャンセルすることは可能ですか?
たとえば、非同期タスクを実行できるいくつかのクラスがあります。
そして、ログアウトする前に、すべての非同期タスクをオフにしたい:
タスクをクエリに保存せずにこれを行うことは可能ですか?
c# - C# で URI を介して CancellationToken を渡す
私は現在、1 つのプロジェクトで次のようなコントローラー メソッドを使用しています。
ただし、これは、呼び出し元が誰/どこにいるかに応じて、次を使用してパススルー呼び出しを行う別のプロジェクトから呼び出すことができます。
2 番目の例は単に URL を作成し、それを最初の例で保持された実際のコントローラーに渡し、結果を返します。これに対する回答を Google で検索しましたが、一致するものが見つかりません。
示されているように、2 番目の例の GET に渡されるキャンセル トークンを作成し、それを (関連する検索情報と共に) 他の GET に渡すことはできますか? (別のリモートサーバーで実行されています)
asp.net - Async Await - SQL Server を呼び出すときの CancellationTokens。ASP.NET
SQL Server への非同期要求を行うときにキャンセル トークンを使用することは適切ですか?
SQL Server が「操作タイムアウト」エラーを報告する状況に陥ったとしましょう。
最終的に、SQL Server は例外を返します。そして、例外を含む結果を受け取ったスレッド プールからのタスク。
しかし、タイムアウト制限を短縮したキャンセルトークンを導入することで、これを防ぐことができればより良いでしょう。
私の腸は、これをSQL Serverに任せて例外を報告する必要があることを教えてくれますが、それはリクエストを数分間ハングさせたままにすることを意味する可能性があります..
これが理にかなっていることを願っています。