Windows8 Metroスタイルアプリ作成時の、asyncの宣言方法

   2013/08/29

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

当ブログ内の関連記事もどうぞ

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください