1

有没有办法对 WP7 - WP8 中的自定义方法进行异步调用?

在 Windows 窗体应用程序中,我只需执行以下操作:

private void btnStart_Click(object sender, EventArgs e)
{
    MyMethod();
}

private async void MyMethod()
{
    await System.Threading.Tasks.Task.Run(() => Thread.Sleep(5000));
}

但是,WP 应用程序似乎不支持 System.Threading.Tasks 命名空间。

那么如果我希望在我的 WP7 - WP8 应用程序中进行类似操作,我应该怎么做?

4

1 回答 1

3

您可以安装Microsoft.Bcl.Async以获得 WP7.5 支持。如果您需要 WP7.0 支持,最好的选择是BackgroundWorker.

PS您的WinForms示例最好写为:

private async void btnStart_Click(object sender, EventArgs e)
{
    await Task.Run(() => MyMethod());
}

private void MyMethod()
{
    Thread.Sleep(5000);
}

遵循这些最佳实践:

  1. 避免async void
  2. 不要Task.Run在通用库方法中使用。
于 2013-06-29T13:24:23.500 回答