方法调用,时间为2秒

本文关键字:2秒 时间 调用 方法 | 更新日期: 2023-09-27 17:59:08

我想调用以下两个时间差为2秒的方法,这些方法应该一个接一个地连续调用,这些方法会更改标签文本,我该怎么做

这就是我为计时器所做的尝试:

private void timer1_Tick(object sender, EventArgs e) 
{ //timer interval is set to 2000 
  //also is enabled 
  method1(); 
  method2(); 
 } 
public void method1() 
{ 
  label1.Text = "method1 called"; 
 } 
 public void method2() 
 { 
    label1.Text = "method2 called"; 
 }

方法调用,时间为2秒

根据您在评论中的响应,我认为您希望您的计时器事件处理程序是这样的:

// Declared at class scope
private int whichMethod = 1;
private void timer1_Tick(object sender, EventArgs e)
{
    if (whichMethod == 1)
    {
        method1();
        whichMethod = 2;
    }
    else
    {
        method2();
        whichMethod = 1;
    }
}

这只是在每次勾选时交替调用哪个方法,它应该满足您在评论中提出的要求。

不要使用Thread。在主线程上睡眠,因为你已经阻塞了主UI线程。使用TPL提供的异步方法进行等待操作,例如:

使用任务。等待延迟:

method1();
Task task = Task.Delay(2000)
            .ContinueWith(t => method2());

作为解决方案,Thread.Sleep(2000)是不可能的吗?它会有点不准确,但可能对大多数目的来说都足够好了。

while(true){ //This will never stop
    method1();
    Thread.Sleep(2000);
    method2();
    Thread.Sleep(2000);
}