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
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.
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.
Tulis kode yang sesuai di Tick penanganan aktivitas. Kode yang Anda tulis dalam peristiwa ini akan berjalan pada interval yang ditentukan dalam Interval properti .
Atur Enabled properti ke
true
untuk memulai timer. Peristiwa Tick akan mulai terjadi, menjalankan prosedur Anda pada interval yang ditetapkan.Pada waktu yang sesuai, atur Enabled properti ke
false
untuk menghentikan prosedur agar tidak berjalan lagi. Mengatur interval ke0
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
.NET Desktop feedback