問題タブ [sleep]

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

ruby - Ruby プログラムにしばらく待つように指示する

次のコード行に進む前に、Ruby プログラムに任意の時間待機するように指示するにはどうすればよいでしょうか?

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

postgresql - 遅延または待機ステートメント

500,000 行の SQL スクリプトがあります。

10行ごとに数秒の遅延を挿入したい50。のような記述がpgsqlあります。waitfort-sql

ありがとう。

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

c++ - プログラムは私のマシンでは 2 秒で実行されますが、他のマシンでは 15 秒で実行されます

Winsock を使用する C++ で書かれた 2 つのプログラムがあります。どちらも TCP 接続を受け入れ、一方がデータを送信し、もう一方がデータを受信します。それらは Visual Studio 2008 でコンパイルされます。また、両方の C++ プログラムに接続し、一方から受信したパケットを転送して他方に送信する C# で記述されたプログラムもあります。その過程で、転送されたパケットの数をカウントして表示します。また、最初のパケットから最新のパケットまでの経過時間も表示されます。

パケットを送信する C++ プログラムは、まったく同じデータを送信するだけで 1000 回ループします。開発マシンで 3 つのアプリすべてを (ループバックまたは実際の IP を使用して) 実行すると、パケットは約 2 秒でシステム全体を通過します。ラボの他の PC で 3 つすべてを実行すると、常に 15 ~ 16 秒かかります。PC ごとに異なるプロセッサとメモリ容量がありますが、すべて Windows XP Professional を実行しています。私の開発用 PC には、実際には、このタスクの実行に時間がかかるマシンの半分のメモリを搭載した古い AMD Athlon が搭載されています。自分のマシンと他の 1 台のマシンのタスク マネージャーで CPU 時間のグラフを確認しましたが、これらのプログラムの実行中にどちらも大量のプロセッサ (つまり 10% 以上) を使用していません。

誰にもアイデアはありますか?ターゲットマシンにVisual Studioをインストールして、それが何か関係があるかどうかを確認することしか考えられません。

問題解決 ============================================== ====

最初に Visual Studio をインストールして、効果があるかどうかを確認しましたが、効果はありませんでした。次に、新しい開発用 PC でプログラムをテストしたところ、古い PC と同じくらい速く動作しました。Vista ラップトップでプログラムを実行すると、再び 15 秒かかりました。

サーバープログラムの特定の命令の両側にタイムスタンプを出力して、どれが最も長くかかっているかを確認したところ、遅延は1ミリ秒のSleep()メソッド呼び出しによって引き起こされていることがわかりました. 私の古いシステムと新しいシステムでは、Sleep(1) が無視されていたようです。これは、同じミリ秒で 10 から 20 を超えるパケットが送信されるためです。時折、約 15 または 16 ミリ秒の実行中断があり、1000 パケットで約 2 秒かかりました。1000 個のパケットを処理するのに約 15 秒かかったシステムでは、各パケットの送信の間に 15 ミリ秒または 16 ミリ秒のギャップがあります。

Sleep() メソッドの呼び出しをコメントアウトしたところ、パケットがすぐに送信されるようになりました。助けてくれてありがとう。

0 投票する
5 に答える
5399 参照

php - PHP での Mail() の呼び出しの間のスリープ

専用 IP で 1 時間あたり最大 500 通のメールを使用して、たとえば 3000 人の受信者にメールを送信するにはどうすればよいですか? これまでのところ、各メールを 9 秒ごとに送信することを考えています。これは 1 時間に約 450 通のメールになります...しかし、どうすればこれを行うことができますか?

メールの送信に関する私の計画は次のとおりです...

これは機能しません。間違った種類のステートメントですが、とにかくこの概念....

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

ruby - Rubyループがスレッドで失敗する

Rubyにスレッドがあります。ループを実行します。そのループが sleep(n) に到達すると停止し、決して起きません。sleep(n) なしでループを実行すると、無限ループとして実行されます。

スレッドが期待どおりに実行されないようにするために、コードで何が起こっているのでしょうか? どうすれば修正できますか?

私のプラットフォームは Windows XP SP3 です
インストールした ruby​​ のバージョンは 1.8.6 です

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

sleep - Threading.Thread.Sleep 実行中の AccessViolationException

Vb.Net でスレッドを集中的に使用するアプリケーション (+-50 スレッド) を開発しました。Thread.Sleep() の実行中にランダムスレッドで AccessViolationException が発生することがあります。

私たちが知る限り、すべてのコードは管理されているため、安全でないコードを実行することはありません。DevExpress コントロールを使用していますが、アンマネージ コードがあるかどうかはわかりません。

この時点で、このエラーをデバッグして修正するために何をすべきかわかりません。どんなヒントも役に立ちます。

前もって感謝します。

0 投票する
6 に答える
7419 参照

java - Java から Windows をスリープ状態にする

コンピューターをスリープ状態にするために Java から Windows で使用するコマンドはありますか?

0 投票する
6 に答える
2341 参照

c++ - PCを交換した後、Sleep()の精度が低下しますか?(C ++)

数年前にC++(MFC、Visual Studio 6.0)で構築され、特定のWindowsマシンでかなり長い間(5年以上)実行されているプログラムがあります。PCは1か月前に交換され(古いPCは故障しました)、それ以降、プログラムのタイミング動作が変更されました。理由を理解するのに助けが必要です。

プログラムの主な機能は、ON信号とOFF信号を外部カードに送信することでキーストロークに応答し、ONとOFFの間の遅延を非常に正確にすることです。プログラムフローの例:

キーストロークが異なれば、それに関連する待機時間も異なり、20ミリ秒から150ミリ秒の間です(特定のキーストロークに応じて非常に決定的な時間)。タイミングは非常に重要です。待機はsimpleを使用して実行されSleep()ます。古いPCでのスリープの精度は、1〜2ミリ秒の偏差でした。コンピューターの外部(外部カード上)でタイミングを測定できるので、スリープ時間の測定は非常に正確です。このようなON-sleep-OFFサイクルを何年にもわたって1日に何千回も実行したこのマシンを考慮に入れてください。私が持っている精度データは健全です。

PCを交換したため、タイミング偏差は10ms以上です。

以前のPCをインストールしなかったため、追加のソフトウェアパッケージがインストールされている可能性があります。また、以前のPCがWindows2000であったかWindowsXPであったかを覚えていないことを認めるのは恥ずかしいことです。XPだったと確信していますが、100%ではありません(今は確認できません...)。新しいものはWindowsXPです。

スリープメカニズムをタイマーベースに変更してみましたが、精度が向上しませんでした。

この変化を説明できるものはありますか?問題を解決する可能性のある以前のPCにインストールされている可能性のあるソフトウェアパッケージはありますか?問題に対処するためのベストプラクティスはありますか?

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

c# - GUIをロックせずにメソッドの実行を一時停止します。C#

Intro to OOPペーパーのプロジェクトでC#のカードゲームに取り組んでおり、ゲームは現在機能していますが、GUIに「フレア」を追加しています。

現在、カードは配られ、UIに即座に表示されます。カードを配った後、次のカードを配る前に、一時停止をプログラムする必要があります。

ゲームが開始されると、次のコードが実行され、それらを表すPictureBoxにデータが入力されます(最終的にはループになります)。

System.Threading.Thread.Sleep(100);を使用してみました。各deal()。show()間、およびこれらの各メソッド内でも、すべてのスリープが処理されるまでGUIをロックし、すべてのカードを一度に表示するだけです。

タイマーとwhileループを組み合わせて使ってみましたが、同じ効果が得られました。

望ましい結果を達成するための最良の方法は何でしょうか?