はじめて書き込みます。
現在、VBを使用して、クライアントとサーバのソケット通信プログラムを作成している、一プログラマーです。
いつも、拝見させていただいています。
VBのタイマに関して、質問させて頂きます。
VBのタイマのEnabledがTrueなのに、タイマが動作しない時ってありますか?
一般的に、Intervalが設定されていて、EnabledがTrueであるならば、タイマは動作すると思うのですが、タイマが動作しない時があります。
私の認識が間違っているのでしょうか?
タイマが動作しなくなる原因を知っている方が居ましたら、是非教えて頂きたく思います。
よろしくお願いします。
それはたぶん有り得ないことだと思うので、
どこかの命令文でタイマのEnabledをFalseにしてたりと、そういうミス
はありませんか?
あと、intervalは0はだめですよ。(あたりまえですね・・・)
●Timerイベントプロシージャ内の処理が重過ぎるため、
その間、次のTimerイベントプロシージャが実行されない、
ということはありませんか?
●どこかにDoEventsしていないLoop処理があって、
その間、次のTimerイベントプロシージャが実行されない、
ということはありませんか?
●MsgBoxを表示しているため、
その間、次のTimerイベントプロシージャが実行されない、
ということはありませんか?
●Sleep(API)で処理をとめているため
その間、次のTimerイベントプロシージャが実行されない、
ということはありませんか?
●サブクラス化かローカルフックでWM_TIMERメッセージを殺しているため
次のTimerイベントプロシージャが実行されない、
ということはありませんか?
●他アプリにCPU時間を占有されているため
その間、次のTimerイベントプロシージャが実行されない、
ということはありませんか?
●コントロールとイベントプロシージャの対応が取れていない
例えば TimerA がフォームに貼り付けてあるのに、
フォームに作成したイベントプロシージャ名が Timer1_Timer()
●497日以上連続稼働
NT/2000/XPで、497日以上連続起動していると WM_TIMER がプログラムに
配布されない場合があります。
http://support.microsoft.com/default.aspx?scid=kb;ja;811756
もう1つ忘れていました
●「**が終わるまで待つ」という処理を行う外部モジュールDLL,OCX, ActiveX EXEなど。)を呼び出していて、その処理が終わるまでの間
ツイート | ![]() |