最近更新したページ
2013-10-20
2013-09-29
2013-09-23
2012-01-07
2011-11-09
2011-10-23
2011-10-09
2011-10-01
2011-09-29
2011-09-03
2011-08-07
2011-08-02
2011-07-29
2011-07-10
2011-05-05
2011-05-04
2011-04-24
2011-04-13
2011-04-05
2011-03-26
2011-02-18
2011-02-15
2010-12-26
2010-12-07
2010-12-05
2010-11-23
2010-09-28
2010-09-23
2010-08-26
2010-08-22
2010-07-16
2010-01-17
2010-01-11
2009-10-04
2009-08-21
2009-08-13
2009-06-18
2009-06-01
2009-04-29
2009-02-16
2009-02-11
2009-02-03
2008-07-22
2008-07-21
2008-07-15
2008-07-14
2008-07-13
2008-07-12
2008-07-08
2008-07-05
2008-06-28
2008-06-17
2008-06-05
2008-06-02
2008-06-01
2008-05-29
2008-05-26
2008-05-21
2008-05-19
2008-05-18
2007-10-31
2007-10-27
2007-09-28
2007-09-23
2007-09-17
2007-09-16
2007-09-14
2007-09-11
2007-06-18
2007-04-15
2006-12-21
2006-11-30
2006-11-22
2006-08-17
2006-03-29
2006-03-28
2006-03-27

vb2005タイマー(Timer)を使った処理



timerプロパティとtimerコンポーネント

プログラムの進行を一定時間待機、または、一定時間経過後に実行したい場合の方法
  • timerプロパティ:午前0時以降の経過秒数を返す
  • timerコンポーネント[Windowsフォーム]
  • timerコンポーネント(サーバーベース)


timerプロパティ

  • 午前 0 時から経過した秒数を表す倍精度浮動小数点数型 (Double) の値を返します。
  • Timer プロパティを Microsoft.VisualBasic 名前空間で修飾する必要があることに注意してください。


timerプロパティで一定時間Weitをかける

※Sub → Function へ変更(経過時間を戻り値としてるが特に意味はありません)
※Subroutine として使うのが良いかと … (^。^)
※注意
  • ループを利用したチェックのため、待機中はCPU利用率が100%となる。
  • 午前零時をまたぐ処理は工夫が必要
''' <summary>(関数)指定時間ループする[Wait]</summary>
''' <remarks>
''' Timer.Tickイベント発生時間を引数で渡す
'''    WaitSeconds  120.0  2分(120秒)待つ
'''    WaitSeconds   10.0 10秒待つ
'''    WaitSeconds    2.0  2秒待つ
'''    WaitSeconds    0.5  0.5秒待つ
''' </remarks>
Public Function WaitTimer(ByVal WeitSeconds As Double) As Double

  '■午前0時をまたぐ場合の処理を記述(要注意)
  'If TimeOfDay >= ( 設定時間 - WeitTime ) Then
  '	MsgBox("注:TimerOfDayは、午前0時に0リセットされるので注意")
  '	Return
  'End If

  '■指定時間一連のプログラムを待機させる
  Dim StartTime, FinishTime, TotalTime, PresentTime As Double
  StartTime = Microsoft.VisualBasic.DateAndTime.Timer
  FinishTime = StartTime + WeitSeconds

  Do While PresentTime < FinishTime
    	'指定時間内ループを継続し待機状態となる
    	'注:待機中は、CPU使用率が100%となる
    PresentTime = Microsoft.VisualBasic.DateAndTime.Timer
  Loop

  TotalTime = Microsoft.VisualBasic.DateAndTime.Timer - StartTime
  MsgBox("実際の待機時間は、" & TotalTime & " 秒です")

  Return TotalTime

End Function



プログラムの実行時間を計測する場合

処理にかかる時間を計測(参考)
※注意:午前零時をまたぐ場合、正しく動作しません
  dim StartTime, FinishTime, TotalTime as double

  MsgBox("*** 処理時間の計測開始 ***")
  StartTime = Microsoft.VisualBasic.DateAndTime.Timer

  '-----------------------
  '*** 計測対象処理の開始 ***
  '         〜
  '*** 計測対象処理の終了 ***
  '-----------------------

  FinishTime = Microsoft.VisualBasic.DateAndTime.Timer
  TotalTime = FinishTime - StartTime

  MsgBox("経過時間は、" & TotalTime & "(秒)です")


▲上へ


timerコンポーネント[Windowsフォーム]

  • Windowsフォームへtimerを貼り付けて利用する

timerイベントで一定時間毎に処理を繰り返す

timerイベントを繰り返します。
''' <summary>タイマーイベント設定用サブルーチン</summary>
''' <remarks>
''' 1.Timer.Tickイベント発生時間の設定
'''    'Timer.Interval 1200000    2分(120秒)待つ
'''    'Timer.Interval   10000   10秒待つ
'''    'Timer.Interval    2000    2秒待つ
'''    'Timer.Interval     500    0.5秒待つ
''' 2.Timerイベントを有効(開始)にする
''' </remarks>
Private Sub RepeatsTime( )

  Timer.Enabled = False     'タイマーイベントが開始中でも停止

  '■タイマーイベントを設定  
  Timer.Interval = 2000     'タイマーイベントを2秒に設定
  Timer.Enabled = True      'タイマーイベントを開始する

  '■マルチラインで準備したテキストボックスへ、開始文字列表示
  TextBox.Text = "2秒間隔" & vbCrLf & TextBox1.Text

End Sub

''' <summary>タイマーイベント発生時の処理</summary>
''' <remarks>Timer.Tickイベントが発生するたび実行される処理</remarks>
Private Sub Timer_Tick(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles Timer.Tick

  '■ここにイベント発生時の処理を記述する
  TextBox1.Text = "timer1::Hell World !!" & vbCrLf & TextBox1.Text

End Sub


timerイベントで一定時間経過後に処理を実行する

timerイベントを利用した1回だけイベント実行
''' <summary>タイマーイベント設定用サブルーチン</summary>
''' <remarks>
''' 1.Timer.Tickイベント発生時間の設定
'''    'Timer.Interval 1200000    2分(120秒)待つ
'''    'Timer.Interval   10000   10秒待つ
'''    'Timer.Interval    2000    2秒待つ
'''    'Timer.Interval     500    0.5秒待つ
''' 2.Timerイベントを有効(開始)にする
''' ※繰り返し実行とまったく同じ
''' </remarks>
Private Sub RepeatsTime( )

  Timer.Enabled = False     'タイマーイベントが開始中でも停止

  '■タイマーイベントを設定  
  Timer.Interval = 5000     'タイマーイベントを5秒に設定
  Timer.Enabled = True      'タイマーイベントを開始する

  '■マルチラインで準備したテキストボックスへ、開始文字列表示
  TextBox.Text = "2秒間隔" & vbCrLf & TextBox1.Text

End Sub

''' <summary>タイマーイベント発生後の処理</summary>
''' <remarks>Timer.Tickイベントが発生すると実行される処理</remarks>
Private Sub Timer_Tick(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles Timer.Tick

  '■ここにイベント発生時の処理を記述する
  TextBox1.Text = "timer1::Hell World !!" & vbCrLf & TextBox1.Text
  Timer.Enabled = False     'タイマーイベントを停止する

End Sub


▲上へ


timerコンポーネント(サーバーベース)

  • 整理中


関連リンク


VisualBasic2005の本

入門向け


入門以上


専門向け(理系・DB・その他)



wiki内関連ページ


外部リンク



▲上へ
2007年10月27日(土) 09:48:16 Modified by cafeboy1




スマートフォン版で見る

×

この広告は60日間更新がないwikiに表示されております。