为什么我的定时器不工作? C# 我想在按下一个键时启动线程并自动停止
Why my timer wont work? C# i want to start Thread on pressing a key and to stops automatically
谁能告诉我为什么这不起作用?
我想通过按键启动一个线程并自动停止,然后他必须休息并重新开始。
但是,如果我按下此键,则什么也不会发生。
他必须启动 void StartFunction,但线程没有启动。如果我在 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!");
}
}
您可以通过将 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 事件。
谁能告诉我为什么这不起作用? 我想通过按键启动一个线程并自动停止,然后他必须休息并重新开始。 但是,如果我按下此键,则什么也不会发生。 他必须启动 void StartFunction,但线程没有启动。如果我在 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!");
}
}
您可以通过将 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 事件。