方法调用,时间为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";
}
根据您在评论中的响应,我认为您希望您的计时器事件处理程序是这样的:
// 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);
}