掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
処理を一時停止してから次の処理をするには? (ID:82744)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>ループで待つとCPU100%になるし ループの一回ごとにDoEventsが入っていますので、バックグラウンド の処理を落とすことはありません。実際リアルタイム処理に使っています、 ただし10分とか長時間待たせるとCPUが熱くなる可能性はあります。 5秒や10秒待つには全く問題は無いでしょう。 (やってみたことはありません、単純ループだけなら熱くならないかも) 心配なら、精度は落ちますがSleepを入れます。 SleepはSleep(1)で十分です。これでCPUの利用率は5%以下になります。 Private Declare Function timeGetTime Lib "winmm.dll" () As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Wait(TimeWaite As Long) Dim TimeStart As Long TimeStart = timeGetTime Do DoEvents Sleep (1) Loop While (timeGetTime - TimeStart < TimeWaite) End Sub 長いSleepやSleepだけの処理は、MSDNによると >The Sleep function suspends the execution of the current thread for a specified interval. となっており、Sleepの間はそのスレッド内の処理がすべて止まります。 従って”blue line”さんの様に同じスレッドの処理待ちにはあまり 向かないと思います。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.