Bagikan melalui


Cara: Jalankan Prosedur pada Interval Set dengan Komponen Timer Formulir Windows

Terkadang Anda mungkin ingin membuat prosedur yang berjalan pada interval waktu tertentu hingga perulangan selesai atau yang berjalan ketika interval waktu yang ditetapkan telah berlalu. Komponen Timer memungkinkan prosedur tersebut.

Komponen ini dirancang untuk lingkungan Formulir Windows. Jika Anda memerlukan timer yang cocok untuk lingkungan server, lihat Pengenalan Timer Berbasis Server.

Catatan

Ada beberapa batasan saat menggunakan Timer komponen. Untuk informasi selengkapnya, lihat Batasan Properti Interval Komponen Pengatur Waktu Formulir Windows.

Untuk menjalankan prosedur pada interval yang ditetapkan dengan komponen Timer

  1. Timer Tambahkan ke formulir Anda. Lihat bagian Contoh berikut untuk ilustrasi tentang cara melakukannya secara terprogram. Visual Studio juga memiliki dukungan untuk menambahkan komponen ke formulir. Lihat juga Cara: Menambahkan Kontrol Tanpa Antarmuka Pengguna ke Formulir Windows.

  2. Atur Interval properti (dalam milidetik) untuk timer. Properti ini menentukan berapa banyak waktu yang akan berlalu sebelum prosedur dijalankan lagi.

    Catatan

    Semakin sering peristiwa timer terjadi, semakin banyak waktu prosesor yang digunakan dalam merespons peristiwa. Ini dapat memperlambat performa keseluruhan. Jangan atur interval yang lebih kecil dari yang Anda butuhkan.

  3. Tulis kode yang sesuai di Tick penanganan aktivitas. Kode yang Anda tulis dalam peristiwa ini akan berjalan pada interval yang ditentukan dalam Interval properti .

  4. Atur Enabled properti ke true untuk memulai timer. Peristiwa Tick akan mulai terjadi, menjalankan prosedur Anda pada interval yang ditetapkan.

  5. Pada waktu yang sesuai, atur Enabled properti ke false untuk menghentikan prosedur agar tidak berjalan lagi. Mengatur interval ke 0 tidak menyebabkan timer berhenti.

Contoh kode pertama

Contoh kode pertama ini melacak waktu hari dalam kenaikan satu detik. Ini menggunakan Button, , Labeldan Timer komponen pada formulir. Properti Interval diatur ke 1000 (sama dengan satu detik). Dalam peristiwa tersebut Tick , keterangan label diatur ke waktu saat ini. Saat tombol diklik, Enabled properti diatur ke false, menghentikan timer memperbarui keterangan label. Contoh kode berikut mengharuskan Anda memiliki formulir dengan Button kontrol bernama Button1, Timer kontrol bernama Timer1, dan Label kontrol bernama Label1.

Private Sub InitializeTimer()  
   ' Run this procedure in an appropriate event.  
   ' Set to 1 second.  
   Timer1.Interval = 1000  
   ' Enable timer.  
   Timer1.Enabled = True  
   Button1.Text = "Enabled"  
End Sub  
x  
Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs) Handles Timer1.Tick  
' Set the caption to the current time.  
   Label1.Text = DateTime.Now  
End Sub  
  
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
      If Button1.Text = "Stop" Then  
         Button1.Text = "Start"  
         Timer1.Enabled = False  
      Else  
         Button1.Text = "Stop"  
         Timer1.Enabled = True  
      End If  
End Sub  
private void InitializeTimer()  
{  
    // Call this procedure when the application starts.  
    // Set to 1 second.  
    Timer1.Interval = 1000;  
    Timer1.Tick += new EventHandler(Timer1_Tick);  
  
    // Enable timer.  
    Timer1.Enabled = true;  
  
    Button1.Text = "Stop";  
    Button1.Click += new EventHandler(Button1_Click);  
}  
  
private void Timer1_Tick(object Sender, EventArgs e)
{  
   // Set the caption to the current time.  
   Label1.Text = DateTime.Now.ToString();  
}  
  
private void Button1_Click(object sender, EventArgs e)  
{  
  if ( Button1.Text == "Stop" )  
  {  
    Button1.Text = "Start";  
    Timer1.Enabled = false;  
  }  
  else  
  {  
    Button1.Text = "Stop";  
    Timer1.Enabled = true;  
  }  
}  
private:  
   void InitializeTimer()  
   {  
      // Run this procedure in an appropriate event.  
      // Set to 1 second.  
      timer1->Interval = 1000;  
      // Enable timer.  
      timer1->Enabled = true;  
      this->timer1->Tick += gcnew System::EventHandler(this,
                               &Form1::timer1_Tick);  
  
      button1->Text = S"Stop";  
      this->button1->Click += gcnew System::EventHandler(this,
                               &Form1::button1_Click);  
   }  
  
   void timer1_Tick(System::Object ^ sender,  
      System::EventArgs ^ e)  
   {  
      // Set the caption to the current time.  
      label1->Text = DateTime::Now.ToString();  
   }  
  
   void button1_Click(System::Object ^ sender,  
      System::EventArgs ^ e)  
   {  
      if ( button1->Text == "Stop" )  
      {  
         button1->Text = "Start";  
         timer1->Enabled = false;  
      }  
      else  
      {  
         button1->Text = "Stop";  
         timer1->Enabled = true;  
      }  
   }  

Contoh kode kedua

Contoh kode kedua ini menjalankan prosedur setiap 600 milidetik hingga perulangan selesai. Contoh kode berikut mengharuskan Anda memiliki formulir dengan Button kontrol bernama Button1, Timer kontrol bernama Timer1, dan Label kontrol bernama Label1.

' This variable will be the loop counter.  
Private counter As Integer  
  
Private Sub InitializeTimer()  
   ' Run this procedure in an appropriate event.  
   counter = 0  
   Timer1.Interval = 600  
   Timer1.Enabled = True  
End Sub  
  
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick  
   If counter => 10 Then  
      ' Exit loop code.  
      Timer1.Enabled = False  
      counter = 0  
   Else  
      ' Run your procedure here.  
      ' Increment counter.  
      counter = counter + 1  
      Label1.Text = "Procedures Run: " & counter.ToString  
   End If  
End Sub  
// This variable will be the loop counter.  
private int counter;  
  
private void InitializeTimer()  
{  
   // Run this procedure in an appropriate event.  
   counter = 0;  
   timer1.Interval = 600;  
   timer1.Enabled = true;  
   // Hook up timer's tick event handler.  
   this.timer1.Tick += new System.EventHandler(this.timer1_Tick);  
}  
  
private void timer1_Tick(object sender, System.EventArgs e)
{  
   if (counter >= 10)
   {  
      // Exit loop code.  
      timer1.Enabled = false;  
      counter = 0;  
   }  
   else  
   {  
      // Run your procedure here.  
      // Increment counter.  
      counter = counter + 1;  
      label1.Text = "Procedures Run: " + counter.ToString();  
      }  
}  
private:  
   int counter;  
  
   void InitializeTimer()  
   {  
      // Run this procedure in an appropriate event.  
      counter = 0;  
      timer1->Interval = 600;  
      timer1->Enabled = true;  
      // Hook up timer's tick event handler.  
      this->timer1->Tick += gcnew System::EventHandler(this, &Form1::timer1_Tick);  
   }  
  
   void timer1_Tick(System::Object ^ sender,  
      System::EventArgs ^ e)  
   {  
      if (counter >= 10)
      {  
         // Exit loop code.  
         timer1->Enabled = false;  
         counter = 0;  
      }  
      else  
      {  
         // Run your procedure here.  
         // Increment counter.  
         counter = counter + 1;  
         label1->Text = String::Concat("Procedures Run: ",  
            counter.ToString());  
      }  
   }  

Baca juga