gpt4 book ai didi

c# - 使用定时器停止另一个定时器

转载 作者:行者123 更新时间:2023-11-30 15:23:35 25 4
gpt4 key购买 nike

我是 C# 的业余爱好者,我正在做一个项目。

我使用了 3 个计时器,其中一个是 20 秒的圆形计时器。我希望在 20 秒过去后,其他 2 个计时器必须停止

我无法从循环计时器访问/调用其他 2 个计时器。这是代码:

public void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DispatcherTimer tgtTimer = new DispatcherTimer();
tgtTimer.Tick += new EventHandler(tgtTimer_tick);
tgtTimer.Interval = new TimeSpan(0, 0, 3);
tgtTimer.Start();


DispatcherTimer txbTimer2 = new DispatcherTimer();
txbTimer2.Tick += new EventHandler(txbTimer2_tick);
txbTimer2.Interval = new TimeSpan(0, 0, 0, 4, 000);
txbTimer2.Start();

DispatcherTimer rt = new DispatcherTimer();
rt.Tick += new EventHandler(rt_tick);
rt.Interval = new TimeSpan(0, 0, 1);
rt.Start();
}

private void tgtTimer_tick(object sender, EventArgs e)
{ //some code }

private void txbTimer2_tick(object sender, EventArgs e)
{ //some code }

int i = 20 //for the 20 sec round timer

private void rt_tick(object sender, EventArgs e) //round timer
{
if(i!=0)
{
i--;
txbTime.Text = "";
txbTime.Text = Convert.ToString(i) + "s";
}
else
{
this.Opacity = 0.3;

//tgtTimer and txbTimer2 can't be accessed from here
}
}

我应该如何停止这 2 个计时器?

最佳答案

您应该尝试在 mouseleftbutton 按下事件之外添加计时器,如下所示:

        DispatcherTimer tgtTimer = new DispatcherTimer();
DispatcherTimer txbTimer2 = new DispatcherTimer();
DispatcherTimer rt = new DispatcherTimer();


public void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
tgtTimer.Tick += new EventHandler(tgtTimer_tick);
tgtTimer.Interval = new TimeSpan(0, 0, 3);
tgtTimer.Start();



txbTimer2.Tick += new EventHandler(txbTimer2_tick);
txbTimer2.Interval = new TimeSpan(0, 0, 0, 4, 000);
txbTimer2.Start();


rt.Tick += new EventHandler(rt_tick);
rt.Interval = new TimeSpan(0, 0, 1);
rt.Start();
}

关于c# - 使用定时器停止另一个定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com