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));
}

ただし、System.Threading.Tasks 名前空間は WP アプリではサポートされていないようです。

WP7 - WP8 アプリで同様の動作をしたい場合はどうすればよいですか?

4

1 に答える 1

3

WP7.5 をサポートするためにMicrosoft.Bcl.Asyncをインストールできます。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 に答える