プログラム言語 タイマー

概è¦

一定期間毎ã«ã€å®šã‚ãŸå‡¦ç†ã‚’定期的ã«è¡Œã‚ã›ã‚‹å‡¦ç†ã€‚

åŒæœŸå‡¦ç†

ã‚¿ã‚¤ãƒžãƒ¼ã§æŒ‡å®šã—ãŸå‡¦ç†(n回目)ãŒçµ‚ã‚ã‚‹å‰ã«ã€æ¬¡ã®å‡¦ç†(n+1回目)ãŒå§‹ã¾ã‚‹å ´åˆã€‚
n回目ã®å‡¦ç†ãŒçµ‚ã‚ã£ã¦ã‹ã‚‰n+1回目ã®å‡¦ç†ãŒå§‹ã¾ã‚‹ã€‚
処ç†ã«å¿…è¦ãªæ™‚é–“ã¯ã€å‡¦ç†ã‚’行ã‚ã›ã‚‹æ™‚é–“ã®é–“隔内ã«åŽã‚ã‚‹å¿…è¦ãŒã‚る。


timer_c
※Intervalã§Tickイベントを発生ã•ã›ã‚‹é–“隔を設定

private int myTime = 0;

private void Form1_Load(object sender, EventArgs e)
{
  //timer開始
  myTimer.Enabled = true;
}

//Intervalã§è¨­å®šã—ãŸé–“éš”ã§ç™ºç”Ÿã™ã‚‹
private void myTimer_Tick(object sender, EventArgs e)
{
  myTime += 1;
  myLabel.Text = myTime.ToString();

  if (myTime == 10)
  {
    //timerを破棄
    myTimer.Dispose();
  }
}

↓Form1.Designer.csã«ã¦ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ã‚’追加ã—ã¦ãŠã事
private void myTimer_Disposed(object sender, EventArgs e)
{
  ↑ ã®Disposeã«ã‚ˆã£ã¦ã“ã“ãŒå‘¼ã°ã‚Œã‚‹
  ~
}

ã€Form1.Designer.cs】
private void InitializeComponent()
{
  //
  // myTimer
  //
  this.myTimer.Interval = 1000;
  this.myTimer.Tick += new System.EventHandler(this.myTimer_Tick);
  //↓ ã“ã®è¡Œã‚’手動ã§è¿½åŠ 
  this.myTimer.Disposed += new System.EventHandler(this.myTimer_Disposed);
}


timer_vb
※Intervalã§Tickイベントを発生ã•ã›ã‚‹é–“隔を設定

Private myTime As Integer = 0

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  //timer開始
  Me.myTimer.Enabled = True
End Sub

Intervalã§è¨­å®šã—ãŸé–“éš”ã§ç™ºç”Ÿã™ã‚‹
Private Sub myTimer_Tick(sender As Object, e As EventArgs) Handles myTimer.Tick

  myTime += 1
  Me.myLabel.Text = myTime

  If myTime = 10 Then
    //timerを破棄
    Call myTimer.Dispose()
  End If

End Sub

Private Sub myTimer_Disposed(sender As Object, e As EventArgs) Handles myTimer.Disposed
  ↑ ã®Disposeã«ã‚ˆã£ã¦ã“ã“ãŒå‘¼ã°ã‚Œã‚‹
  ~
End Sub

setTimeout()
※指定ã—ãŸæ™‚é–“ã®å¾Œã€æŒ‡å®šã®é–¢ã™ã‚‹ã‚’実行ã™ã‚‹ã€‚
繰り返ã—ç„¡ã—。時間ã¯ãƒŸãƒª(1/1000)。

function fnTest(){
  ~
}

//1秒後ã«fnTest()を実行
var timer = setTimeout(“fnTest()” , 1000);

//1秒後ã«åŒ¿å関数を実行
var timer = settimeout(function(){
~
} , 1000);

clearTimeout()
※実行中ã®timer(setTimeout)ã‚’åœæ­¢

//fnTest()ã‚’å³å®Ÿè¡Œ
timer = setTimeout(“fnTest()” , 0);

//↑timerã‚’åœæ­¢
clearTimeout(timer);

//10秒後ã«å†é–‹
timer = setTimeout(“fnTest()” , 10000);

éžåŒæœŸå‡¦ç†

ã‚¿ã‚¤ãƒžãƒ¼ã§æŒ‡å®šã—ãŸå‡¦ç†(n回目)ãŒçµ‚ã‚ã‚‹å‰ã«ã€æ¬¡ã®å‡¦ç†(n+1回目)ãŒå§‹ã¾ã‚‹å ´åˆã€‚
n回目ã®å‡¦ç†ã®çµ‚了ã«é–¢ä¿‚ãªãã€n+1回目ã®å‡¦ç†ãŒå§‹ã¾ã‚‹ã€‚

setInterval()
※指定ã—ãŸä¸€å®šã®é–“éš”ã§æŒ‡å®šã—ãŸé–¢æ•°ã‚’実行
指定ã—ãŸé–¢æ•°ã®å®Ÿè¡Œã®çµ‚了を待ãŸãšã€æŒ‡å®šã—ãŸé–“éš”ã§ã¾ãŸæ¬¡ã®å®Ÿè¡ŒãŒå§‹ã¾ã‚‹

//1ç§’ã«1回ã€fnTest()を実行
var timer = setInterval(“fnTest()” , 1000);

var timer = setInterval(function(){
  //引数ã‚り関数を実行ã™ã‚‹å ´åˆ
  fnTest(100);
} , 1000);

clearInterval()
※実行中ã®timer(setInterval)ã‚’åœæ­¢

//fnTest()ã‚’å³å®Ÿè¡Œ
var timer = setInterval(“fnTest()” , 1000);

//↑timerã‚’åœæ­¢
clearInterval(timer);

//10秒後ã«å†é–‹
timer = setInterval(“fnTest()” , 10000);

Timeré–‹å§‹ã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°

Form_Loadイベント開始
↓
タイマー起動
↓
Form_Loadイベント終了
※タイマーãŒèµ·å‹•ã™ã‚‹ã®ã¯Form_Loadイベント終了後

Form_Loadイベント開始
↓
タイマー起動(3秒後)
↓
10秒掛ã‹ã‚‹å‡¦ç†
↓
Form_Loadイベント終了
※タイマーãŒèµ·å‹•ã™ã‚‹ã®ã¯ã‚¿ã‚¤ãƒžãƒ¼èµ·å‹•処ç†ã‹ã‚‰10秒後

Form_Loadイベント開始
↓
タイマー起動(3秒後)
↓
1秒掛ã‹ã‚‹å‡¦ç†
↓
Form_Loadイベント終了
※タイマーãŒèµ·å‹•ã™ã‚‹ã®ã¯ã‚¿ã‚¤ãƒžãƒ¼èµ·å‹•処ç†ã‹ã‚‰3秒後

Sleep

System.Threading.Thread.Sleep(1000);

System.Threading.Thread.Sleep(1000)

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Call Sleep(1000) ※1秒

sleep(5);
※5秒

Follow me!