問題タブ [suspend]

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

c - リモートプロセスの実行を一時停止する(C、Windows)

SuspendThread()を使用して、別のプロセスのスレッドを一時停止できます。そのプロセスの実行を完全に一時停止する方法はありますか?はいの場合は、コードを投稿してください。

ありがとう。

PS:「なぜこれをやりたいのか」と聞かれるので、ここに投稿します。私はもう維持されていないレガシーソフトウェアを扱っています。ソースコードにアクセスできません。今のところ、ファイルがデータでいっぱいになるまで一時停止してから、実行を再開する必要があります。

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

javascript - JScript 待機関数

特定のグローバル変数が true になるまで一時停止する必要がある JScript (javascript ではない) で記述された関数があります。ajax 応答の後に別の関数が呼び出されると、グローバル変数が true に変更されます。

変数が true になるまでループしようとすると:

私は忙しい待機に入り、コールバック関数は決して呼び出されません。

WScript.wait() の使用を提案する人もいましたが、私のアプリは WScript を認識していません。SetTimeout() も非同期呼び出しであり、元の関数を中断しないため、役に立ちません。

他の提案はありますか?

私の質問に関する詳細情報: スクリプトで 2 つの関数を呼び出す必要があります。

waitWhileAjaxIsNotCompleted ()で ajax リクエスト (A4J によって実装) を送信するボタンをクリックし、ajax の完了時に終了するようにします。ajax がいつ完了したかを知るために、ajax が完了したときに呼び出されるリスナーとして関数を登録しました。この関数は、globalVariable 値を変更します。私のwaitWhileAjaxIsNotComplete()は無限ループに入り、globalVariable 値が変更されるのを待ちます。変更されたら (リスナーが目覚めた後)、関数を終了してdoSomthingElse()関数を続行できます。

実装の詳細については、QTP Web 拡張ツールキットと ajaxを参照してください。

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

sql - SQL アクティビティ モニターでの中断ステータス

Management Studio で実行されているクエリが中断される原因は何ですか?

  1. テーブル (1,100 万行) から単純な上位 60000 を選択すると、結果が 1 ~ 2 秒以内に返されます。
  2. クエリを上位 70000 に変更すると、結果に最大 40 分かかります。

別の関連する問題を少し検索したところ、DBCC FREEPROCCACHE を使用して修正する人に出会いました。

  1. DBCC FREEPROCCACHE を実行してから、70000 のクエリをやり直したところ、うまくいったようです。

ただし、問題は別のクエリでも発生します。

  1. 90000 まで増やしたり、[Right->Open Table] を使用してテーブルを開こうとすると、約 8000 レコードを取得して停止します。

テーブルを開くときにアクティビティ ログを確認すると、セッションが「Async_Network_IO」の待機タイプで中断されていることが示されます。90000 の選択を実行しているセッションのステータスは「スリープ中」です。これは、45 分で返された上記の選択 70000 クエリと同じステータスです。ステータスが「スリープ中」と表示され、「実行可能」に変化していないように見えるのは奇妙です(アクティビティモニターが30秒ごとに更新されます)。

その他の注意事項:

  • Open Table と select 90000 の両方を同時に実行していません。すべてのクエリは一度に 1 つずつ実行されます。
  • 32 ビット SQL Server 2005 SP2 CU9 を実行しています。SP3 へのアップグレードを試みましたが、インストールに失敗しました。このアップグレードを試みる前に、問題が発生していました。
  • サーバーのセットアップはアクティブ/アクティブ クラスターであり、どちらかのノードで問題が発生し、もう一方のインスタンスにはこの問題はありません。
  • この同じサーバー インスタンスに約 20 の他のデータベースがありますが、この 1 つの DB だけで問題が発生しています。
  • このデータベースはかなり大きくなります。現在、76756.19MB です。データファイルは11,513MB。
  • リモート デスクトップを使用してサーバー ボックスにローカルでログインしています。
0 投票する
1 に答える
120 参照

winapi - Vista でサスペンドを要求するが、他のアプリケーションがキャンセルできるようにする

私のアプリケーションは、Win32 SetSuspendState()API を使用して、時間のかかるタスクの終了時にシステムのサスペンドまたは休止状態をトリガーします。

API は、システムがすぐに中断するかどうか、またはPBT_APMQUERYSUSPEND最初にブロードキャストして他のアプリが中断をキャンセルできるようにするかどうかを決定する "ForceCritical" パラメーターを受け入れます。私のアプリはこれを使用して、Media Player などの他のアプリとうまく連携するため、音楽などを聴いている場合でも停止しません。

何らかの理由で、Vista 以降、MS は変更を加えたため、このパラメーターは無視されるため、SetSuspendStateすぐにサスペンドが発生し、他のアプリケーションはそれを停止する機会がありません。

Vistaで望ましい「丁寧な」動作を取り戻す方法を知っている人はいますか?

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

c# - C# スレッドの再開

重複する可能性のある質問: スレッドを無期限に一時停止する方法はありますか?


私のコードでは、以下を行います

次に、中断されていないときに再開を呼び出すため、以下の例外が発生します。

この警告に気づきました

だから、中断されていない例外/ケースを再開して無視する方法はあるのだろうか? 1行だけではなく、以下を書くのは嫌いです

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

winapi - SetThreadExecutionState(ES_SYSTEM_REQUIRED)がディスプレイの電源オフを妨げるのはなぜですか?

ディスプレイの電源をオフにしながらシステムをオンにしたままにして、システムが無人のときにダウンロードを終了できるようにしようとしています。これを達成するために私は呼びます:

ダウンロードからデータを取得するときはいつでも。ただし、これによりディスプレイの電源が切れるのを防ぐようです(ディスプレイは設定された調光タイマーごとに調光しますが、完全にオフになることはありません)。MSDNエントリによると、これは私も合格した場合にのみ発生するはずですES_DISPLAY_REQUIRED-とにかくブロックされているのはなぜですか?

呼び出しを停止SetThreadExecutionStateしても、ディスプレイの電源が再びオフにならないことに注意してください。表示をオフにするには、プログラムを終了する必要があります。ES_CONTINUOUSただし、 ?で呼び出された場合にのみ効果が持続するのではないでしょうか。

重要な場合は、Windows7を使用しています。現在、他のバージョンでテストすることはできません...

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

multithreading - データを待機して処理し、待機を再開する Delphi スレッド

次の特性を持つ Delphi でスレッドを作成する必要があります。

  • メイン スレッドが共有キューにデータを追加するまで待機します。
  • キュー内のすべてのデータを処理し、結果をメイン スレッドに返します (この最後の部分では、メイン ウィンドウにメッセージを送信するだけです)。処理には時間がかかるため、ワーカー スレッドが前のエントリを処理している間に、新しいデータがキューに追加されることがあります。
  • 可能な限り少ない CPU サイクルを使用して、待機を再開します。

ウィンドウハンドルがないため、スレッドにメッセージを送信できません。

WaitForObject のバリアントを使用する必要がありますか? もしそうなら、何を待つのでしょうか?そうでない場合、どうすればスレッドを待機させ、新しいデータがキューを下ったときにスレッドを起こすことができますか?

Multithreading - The Delphi Wayを読みましたが、私の質問には答えていないようです。おそらく 、OmniThreadLibraryは私が必要とすることを行うことができます。資料が少ないのでなんとも言えません。ここでライブラリが役立つかどうか、およびその使用方法 (または、単に TThread の子孫を操作する代わりに使用する理由さえ) を理解するために、一般的にスレッドについて十分に知りません。

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

mysql - MySQL でトランザクションの一時停止はどのように機能しますか?

Spring Framework マニュアルでは、PROPAGATION_REQUIRES_NEW の場合、現在のトランザクションが中断されると述べています。

その「中断された取引」とは何ですか?タイムアウトのタイマーが現在のトランザクションのカウントを停止しますか? そのような一時停止の実際の意味は何ですか?

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

アサフ

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

process - プログラムの進行状況を保存し、後で再開する方法は?

あなたは多くのプログラムを知っているかもしれません。たとえば、いくつかのパスワード クラッキング プログラムなどです。実行中にプログラムを停止できます。プログラムを再度実行すると (同じ入力を入力するかどうかに関係なく)、元の場所から続行できます。残っています。これらのプログラムはどのような手法を使用しているのだろうか?

[編集] 主に再帰関数に基づいたプログラムを書いています。私の知る限り、このような状態をプログラムに保存するのは非常に難しいと思います。どういうわけか、スタックの内容、関数呼び出し、およびプログラムに関連するデータを保存し、再起動すると、停止していないかのように実行できる手法はありますか? これは私の頭の中にある概念なので、意味をなさない場合はご容赦ください...

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

sql-server - SQL Server - インデックスの作成中に SPID が "SUSPENDED" になるのにブロックされないのはなぜですか?

SQL 2005 x64 サーバーを使用しており、それに対していくつかのクエリを発行しようとすると (たとえば、インデックスを作成しようとすると)、SPID がすぐに "スリープ" 状態になり、無期限に待機しているように見えます。ブロックされておらず (SP_WHO2 の "BLKBY" 列は空です)、CPU と DiskIO の値は非常に小さく (それぞれ 300 未満)、増加していません。

私のクエリは何を待っている可能性がありますか? インデックスを作成しているテーブルから SELECT * を実行すると、1 分ほどで 100 万行すべてが返されるため、テーブル アクセスがブロックされたり、テーブルの競合が発生したりすることはありません。

私が確認できる他のことについて何か考えはありますか?SQL インスタンスをあきらめて再起動するだけでよいのでしょうか? :)

詳細: SSMS の別のタブから CREATE INDEX を実行していますが、返されません。「実行中」と表示されるだけで返されないため、プロセスが放棄されたとは思いません。