【问题标题】:C#, execute a method after x seconds, from backgroundC#,在 x 秒后从后台执行一个方法
【发布时间】:2015-03-23 23:14:26
【问题描述】:

是否可以在点击事件(非常规事件)从后台 30 秒后执行方法? “从后台”是指 UI 仍在工作;没有主动等待。我不能用System.Threading.Thread.Sleep(x)等等。

我尝试了Timer Class,但我无法让它按我想要的方式工作。

【问题讨论】:

  • 为什么不能使用Thread?我不清楚。
  • 也许你应该看看TaskBackgroundWorker
  • 具体来说,您的计时器解决方案如何不起作用,以及您使用的是什么代码。
  • @sloth:你仍然需要Thread.SleepTask.Delay
  • @PatrickHofman 当然。但这是怎么回事?

标签: c# winforms timer


【解决方案1】:

您可以使按钮单击事件处理程序async,然后将任务延迟到您需要的时间:

private async void YourButton_Click(object sender, EventArgs e)
{
    await Task.Delay(2000);

    // do whatever you want
}

【讨论】:

  • 只是添加这是 C# 5.0 的功能。
  • 然后更新为使用 .NET 4.5。那是你最好的选择。另请参阅 this question 以获得对 .NET 4.0 的支持。
  • 我需要升级 Visual Studio,现在我使用的是 2010 Express,还是只需要 .NET 框架?谢谢
  • 我建议升级,因为 VS 2015 即将推出。您可以免费下载 VS 2013 社区版。
  • 你能说得更具体点吗?究竟是什么不工作?
猜你喜欢
  • 2020-04-29
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多