我正在创建一个应用程序,当您单击按钮时,它会等待10秒并通过SendKeys执行某个击键。问题是 - 它需要让用户将鼠标指针移到窗口(例如,在Web浏览器中选择一个文本框)。所以,当我尝试
时System.Threading.Thread.Sleep(10000);
它对我不起作用,因为它冻结了整个GUI,用户无法轻易做任何事情。 那么,有TIMER。我需要设置它(让我们称之为timer1)让用户等待10秒,每隔几秒启动一次按键组合的timer2并禁用timer1(本身)。所有这些都没有冻结GUI。当我在visual studio中设置定时器间隔时,它似乎完全忽略,它甚至不会立即激活,但是在+ - 50毫秒之后。
有什么建议吗? 感谢。
答案 0 :(得分:0)
您可以在按钮Click事件中使用任务继续
Task.Delay(10000)
.ContinueWith(_ => YourMethod(),
TaskScheduler.FromCurrentSynchronizationContext());
或
private async void button1_Click(object sender, EventArgs e)
{
await Task.Delay(10000);
YourMethod();
}