- 日時: 2009/12/11 00:26
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[日付・時刻][][] * * キーワード:指定時間待つ,Sleep,DoEvents,待機,実行を停止, * *********************************************************************************** プログラムの実行を一時停止するために Sleep API 関数を使ったり、下記のように DoEvents と Sleep とを併用して使ったりしていたのですが、最近になって Sleep 関数は VB では使用しない方がいいと言う書き込みが多く見受けられるので、色々調べていたら MSDN のサイトで、SetWaitableTimer を使った方法が紹介されていたので、掲載しておきます。
従来の方法 ----------------------------------------------------------------------------------- Private Sub WaitTime(st As Long) '指定の時間待つ(1/1000 秒単位で指定) Dim lngSt As Long lngSt = timeGetTime Do While timeGetTime - lngSt < st DoEvents Sleep 50 Loop End Sub
----------------------------------------------------------------------------------- 文書番号: 231298 - 最終更新日: 2006年8月14日 - リビジョン: 3.1 Visual Basic で SetWaitableTimer を使用する方法 http://support.microsoft.com/kb/231298/ja
上記サンプルでは、秒単位になっているので、ミリ秒に直して使っています。 -----------------------------------------------------------------------------------
又、MsgWaitForMultipleObjects API 関数を使った方法もあるようです。 こちらの方が、SetWaitableTimer を使った方法より簡単です。
|