tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
Visual Basic で SetWaitableTimer を使用する方法(VB6.0) ( No.4 )  [親スレッドへ]
日時: 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 を使った方法より簡単です。



 [スレッド一覧へ] [親スレッドへ]