有人能告訴我為什么這不起作用嗎?我想通過按鍵啟動執行緒并自動停止,然后他必須休息并重新開始。但是如果我按下這個鍵,那么什么也不會發生。他必須啟動 void StartFunction,但 Thread 沒有啟動。如果我在 Forms_load 上啟動執行緒,那么一切都很好。但我只在按下一個鍵時才需要這個執行緒
private void StartFunction()
{
Thread AB = new Thread(SEARCHING) { IsBackground = true };
AB.Start();
}
private void StopFunction()
{
Thread AB = new Thread(SEARCHING) { IsBackground = true };
AB.Abort();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.L)
{
StartFunction();
MessageBox.Show("Timer 1 started!");
}
}
int time = 10;
private void timer1_Tick(object sender, EventArgs e)
{
time ;
if (time == 2 && timer1.Enabled)
{
timer1.Stop();
time = 0;
StopFunction();
}
if (time == 2 && !timer1.Enabled)
{
timer1.Start();
time = 0;
StartFunction();
MessageBox.Show("Timer 1 started!");
}
}
uj5u.com熱心網友回復:
您可以通過將 timer_tick 存盤在變數中來使自己更容易。當變數達到 120(2 分鐘)時,停止計時器。首先,您應該啟動計時器,然后:
private void timer1_Tick(object sender, EventArgs e)
{
time ;
if(time == 120 && timer1.Enabled)
{
timer1.Stop();
time = 0;
}
if(time == 60 && !timer1.Enabled){
timer1.Start();
time = 0;
}
}
您可以在計時器的 ptoperties 中找到 timer_tick 事件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449349.html
