Windows8 Metroスタイルアプリ作成時の、asyncの宣言方法
つまづいたこと
Metro Styleアプリを作ってみようとしたんですが、つまらないところでツマづいたのでメモしておきます。
やろうとしたことは、ユーザにファイル指定してもらうために、ファイル選択画面を表示することです。
(名前空間やクラスをnewするところ等は省略しますが、)以下のようなコードを書きました。
StorageFile file = await open.PickSingleFileAsync(); IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
ところが、どちらのコードも以下のエラーメッセージが表示されてしまいました。
The 'await' operator can only be used within an async method. Consider marking this method with the 'async' modifier and changing its return type to 'Task'.
解決策
英語力が乏しいので、当初はどこをasyncにすれば良いのか分からずに悩んでしまいました。
どうやら、メソッドの最初(定義部分?)に async を付ければ良いみたいです。
【変更前】
private void Button_Click_1(object sender, RoutedEventArgs e) { : : }
【変更後】
private async void Button_Click_1(object sender, RoutedEventArgs e) { : : }
確認環境
Windows8 Consumer Preview – 32 Bit
Visual Studio 11 Beta
この記事へのコメントはこちら