問題タブ [cancellation]

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 投票する
5 に答える
4521 参照

delphi - アクティブノイズキャンセル

私は音声認識プログラムをプログラムしましたが、音楽を再生しているコンピューターでマイクが私を聞くのに問題があります。マイクに入る音からスピーカーから出る音をフィルターで除去できるソフトウェアが必要です。

私の問題を解決するソフトウェアまたはコンポーネント(Delphi用)はありますか?

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

sockets - boost::asio::io_service::run() を呼び出しても、boost::asio::io_serive::stop() が終了しない

こんにちは、非同期ソケット関数を使用する単純なアプリケーションを 1 つ作成しました。ソケットを閉じているときにいくつかの問題に直面しています。

async_connectソケットでを呼び出す前に、5 秒のタイマーを使用しています。場合によっては、接続が行われず、タイマーが期限切れになります。タイマーが切れると、ソケットを閉じますtcp_socket.close()boost::asio::error::operation_abortedしかし、問題は、閉じる代わりにキャンセルしようとしたときに、エラーで接続コールバックハンドラーがまったく呼び出されないことです。次のすべての非同期接続の呼び出しでも同じことが起こります。

私はtcpソケットを閉じており、作成されたスレッドでclient_sessionオブジェクトのjoin()呼び出しを破棄していますが、io_service::run()がまだ終了していないことを意味します...:-(これがなぜなのかわかりません起こっている...まだ同じ問題に直面している他の多くの方法を試しました。

問題が何であるかわかりません。すべての提案と解決策をいただければ幸いです。

私の実際のコードは、次のようになります。

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

exception-handling - TaskCanceledExceptionsをスローせずにタスクを待機するにはどうすればよいですか?

いくつかのタスクを作成し、WaitAllでそれらを待機してから戻るメソッドがあります。問題は、これらのタスクがキャンセルされた場合、WaitAllが多数のTaskCanceledExceptionを含むAggregateExceptionをスローすることです。

これは、WaitAllが2つの異なる状況で例外をスローすることを意味します。

  • 真のエラーを示す例外。これらは、処理方法がわからない状態があったことを意味します。最終的にプロセスを終了するまで、未処理の例外として伝播する必要があります。
  • ユーザーが[キャンセル]ボタンをクリックしたことを示す例外。これは、タスクがキャンセルされてクリーンアップされ、プログラムが正常に実行され続けることを意味します。

後者は、厄介な例外の定義に正直に当てはまります。これは、完全に例外ではない状況でスローされる例外であるため、通常の制御フローを再開するには、それをキャッチする必要があります。幸いなことに、捕まえるのは簡単ですよね?追加catch (AggregateException)して-ああ、待ってください。これは、致命的なエラーが発生したときにスローされるのと同じタイプです。

タスクが実行を終了するのを待ってから戻る必要があるので(データベース接続やファイルハンドルなどを使用していないことを知る必要があります)、WaitAllなどが必要です。また、いずれかのタスクに障害が発生した場合、それらの例外を未処理の例外として伝播させたいと思います。キャンセルの例外は必要ありません。

WaitAllキャンセルされたタスクの例外がスローされないようにするにはどうすればよいですか?

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

.net - 古いフレームワーク バージョンで使用されていたライブラリで、新しい .NET フレームワーク機能をサポートする

.NET 3.5 アプリケーションで使用されるため、.NET 3.5 でコンパイルされた非同期ライブラリがありますが、.NET 4.0 CancellationTokens を渡したい場合は、.NET 4.0 CancellationTokens を処理できるようにしたいと考えています。.NET 4.0 を含めるには.NET 3.5 との互換性を壊さなければなりません。これまでに思いついた唯一のオプションは、「オブジェクト」を渡すことを許可してからリフレクションを使用することですが、それは醜いパブリックインターフェイスになります...クライアントコードが正しいものを渡していることを確認したい実行時ではなく、コンパイル時のオブジェクト タイプ。

コンシューマー アプリケーションに不要な依存関係を導入することなく、コンパイル時に .NET 4.0 オブジェクトに対してバインドする方法はありますか? 「この機能がある場合は使用し、ない場合はスキップする」と言うには?

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

c# - BlockingCollection で GetConsumingEnumerable() をキャンセルする方法

次のコードでは、CancellationToken を使用して、プロデューサーが生成していないときに GetConsumingEnumerable() をウェイクアップし、foreach から抜け出してタスクを終了したいと考えています。しかし、 IsCancellationRequested がログに記録されているのが見えず、 Task.Wait(timeOut) が timeOut 期間全体を待機します。私は何を間違っていますか?

後で...

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

c++ - C ++例外とpthreadキャンセルの相互作用を指定する動きはありますか?

GNU Cライブラリは最近pthreadキャンセルにDWARF2アンワインドを使用しているため、C ++例外とpthreadキャンセルクリーンアップハンドラーの両方が、途中で必要に応じて自動オブジェクトのデストラクタを呼び出す共通の呼び出しフレームアンワインドプロセスを通じて呼び出されます。ただし、私が知る限り、(POSIX)スレッドとC ++の間の相互作用を指定する標準はまだありません。おそらく、移植性を望むアプリケーションは、キャンセルクリーンアップコンテキストから例外をスローすることは、呼び出すのと同じくらい未定義であると想定する必要がありますlongjmp。それらのうち、重要なデストラクタを持つライブ自動オブジェクトを持つスレッドをキャンセルすることも未定義の動作です。

この相互作用に対処するために進行中の標準化プロセスはありますか、それとも将来的には未定義であると予想されるものですか?C ++ 11には、スレッドサポートでPOSIXスレッドキャンセルに類似した概念がありますか?

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

java - サーバーベースの SwingWorker が停止しない

サーバーの実行 (開始/停止) を制御するブール変数があります。

プライベート ブーリアン ecoute=true;

ここに私のクラスがあります:

ボタンをクリックして、スレッドが無限ループから抜け出すために変数を false に渡すと、何も起こりません:

私も新しいものに置き換えましecoute=false;sw.calcel(true);...

なにか提案を ?

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

c# - TPLタスクを正しくキャンセルする方法

私は次のタスクを持っています

この方法DuplicateSqlProcsFrom(token, mainForm.mainConnection, strDbA, strDbB)では、標準のキャンセル検出があります。

キャンセルイベントは、メインフォームのボタンクリックです。クリックイベント内には次のようなものがあります。

しかし、私は捕まえることができるようです、私はAggregateExceptionここで何が間違っているのですか?

編集:メソッド内でDuplicateSqlProcsFrom(token, mainForm.mainConnection, strDbA, strDbB)私はキャッチできますOperationCancelledExceptionが、それを処理する方法について混乱しています。私が見たすべての例は、キャンセルの原因となったイベント内のUIスレッドでの「操作がキャンセルされました...」などの印刷を処理します。キャンセルをキャプチャしてUI/呼び出しスレッドに戻すための最良の方法は何ですか?

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

c# - BackgroundworkerでDoWorkをキャンセルする方法

これがBackGroundWorkerのキャンセルに関する最初の質問ではないことは知っていますが、問題を解決するための答えが見つかりませんでした。
私はファイルを送信するメソッドを持っています..imbackgroundworkerを使用してそれを呼び出し
ます..ファイルの送信中にbackgroundworkerをキャンセルするにはどうすればよいですか..つまり、どこに置くべきかを意味します

ここにコードがあります:

送信方法:

sendメソッドのwhile()ループでCancellationPendingをチェックする必要がありますが、このメソッドからbackgroundworkerの[e.Cancel]に到達できません..どうすればよいですか?

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

c# - Thread.Abort()がNetworkStream.Readでスタックしますか?

ファイル転送アプリケーション(サーバークライアント)を持っています...ファイルの送信中にキャンセルを有効にしたいです。
クライアントは、backgroundworkerによって機能するSendFileメソッドをキャンセルしてから、受信スレッドをキャンセルするコマンドをサーバーに送信します。
サーバーがこのコマンドを受信すると、Stopメソッドを呼び出しますが、その行でスタックします。network.Read(data、0、data.Length);

どうすればこのスレッドを中止して、network.Read(..)にとらわれることなく 最終的に進むことができますか?
前もって感謝します。