VSUG DAY – Summer ( 2012.06.16 )“ なめらか”な    メトロスタイルアプリを        作るために~ WinRT の非同期性を活用したアプリ開発~      青柳 臣一
自己紹介                  Twitter: @ShinichiAoyagi           ブログ : http://shinichiaoyagi.blogspot.jp/       仕事                ...
“ なめらか”• タッチ – マウス以上に遅延に敏感になる• フィードバック – HDD のアクセスランプ• メトロスタイルアプリのライフサイクル – 起動→サスペンド→再起動→…          VSUG DAY - Winter 2012...
非同期• WinRT では多くの API が非同期 – 50ms 以上かかる API は基本的に非同期 – 非同期メソッドがある場合は同期版は無し• 非同期メソッドは末尾に “ Async” – ファイル作成   • StorageFolder...
Asynchronous / Await• Asynchronous  – 発音記号 eɪ síŋkrənəs  – 「エイシンクロナス」  – 日本での発音は「アシンクロナス」が一般的    ?• Await  – 発音記号 əwéɪ t  ...
サンプル (1)           VSUG DAY - Winter 2012.06.16
サンプル (2)• async/await を使うと簡単すっきり           VSUG DAY - Winter 2012.06.16
async / await• 魔法ではない  – C# / VB コンパイラががんばってコードを作    っている  – 詳細は C# Language Specification 5.0 に記    載(たぶん、きっと)     • 今は以下...
自作 Async メソッド• async メソッドの戻り値 – void 、 Task 、 Task<T> のいずれかのみ           VSUG DAY - Winter 2012.06.16
キャンセル / 進捗• キャンセル – CancellationToken と   CancellationTokenSource• 進捗 – IProgress<T>              VSUG DAY - Winter 2012.0...
async / await の注意点 (1)• await から下はあくまで非同期  – 見た目にだまされるとまずい  – ときにはきちんとロックが必要かも  – ローカル変数なら(ほぼ)安心    • けど、魔法みたいになっちゃうことも   ...
async / await の注意点 (2)• await 後は必ず UI スレッドに返ってくる  – 必要ないときは   await XxxAsync()    .ConfigureAwait(continueOnCapturedContex...
ご清聴ありがとうございました   VSUG DAY - Winter 2012.06.16
Upcoming SlideShare
Loading in …5
×

“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~

18,701 views

Published on

VSUG DAY 2012 Summer のセッション資料です。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
18,701
On SlideShare
0
From Embeds
0
Number of Embeds
16,224
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~

  1. 1. VSUG DAY – Summer ( 2012.06.16 )“ なめらか”な    メトロスタイルアプリを        作るために~ WinRT の非同期性を活用したアプリ開発~ 青柳 臣一
  2. 2. 自己紹介 Twitter: @ShinichiAoyagi ブログ : http://shinichiaoyagi.blogspot.jp/ 仕事 職場 自宅 ソフトウエア開発 大阪 大阪 WPF 、 Silverlight 、 淀屋橋 吹田 C# 、 VB 、 VSUG DAY - Winter 2012.06.16
  3. 3. “ なめらか”• タッチ – マウス以上に遅延に敏感になる• フィードバック – HDD のアクセスランプ• メトロスタイルアプリのライフサイクル – 起動→サスペンド→再起動→… VSUG DAY - Winter 2012.06.16
  4. 4. 非同期• WinRT では多くの API が非同期 – 50ms 以上かかる API は基本的に非同期 – 非同期メソッドがある場合は同期版は無し• 非同期メソッドは末尾に “ Async” – ファイル作成 • StorageFolder.CreateFileAsync() – ファイル検索 • StorageFolder.CreateFileQuery() のあと GetFilesAsync() VSUG DAY - Winter 2012.06.16
  5. 5. Asynchronous / Await• Asynchronous – 発音記号 eɪ síŋkrənəs – 「エイシンクロナス」 – 日本での発音は「アシンクロナス」が一般的 ?• Await – 発音記号 əwéɪ t – 「アウエイト」• 今日は「アシンクロナス」 VSUG DAY - Winter 2012.06.16
  6. 6. サンプル (1) VSUG DAY - Winter 2012.06.16
  7. 7. サンプル (2)• async/await を使うと簡単すっきり VSUG DAY - Winter 2012.06.16
  8. 8. async / await• 魔法ではない – C# / VB コンパイラががんばってコードを作 っている – 詳細は C# Language Specification 5.0 に記 載(たぶん、きっと) • 今は以下にあり • 「 C# Language Specification for Asynchronous Functions 」 http://www.microsoft.com/en-us/download/details.aspx?id=23753 VSUG DAY - Winter 2012.06.16
  9. 9. 自作 Async メソッド• async メソッドの戻り値 – void 、 Task 、 Task<T> のいずれかのみ VSUG DAY - Winter 2012.06.16
  10. 10. キャンセル / 進捗• キャンセル – CancellationToken と CancellationTokenSource• 進捗 – IProgress<T> VSUG DAY - Winter 2012.06.16
  11. 11. async / await の注意点 (1)• await から下はあくまで非同期 – 見た目にだまされるとまずい – ときにはきちんとロックが必要かも – ローカル変数なら(ほぼ)安心 • けど、魔法みたいになっちゃうことも VSUG DAY - Winter 2012.06.16
  12. 12. async / await の注意点 (2)• await 後は必ず UI スレッドに返ってくる – 必要ないときは await XxxAsync() .ConfigureAwait(continueOnCapturedContext:false); await XxxAsync().ConfigureAwait(false); VSUG DAY - Winter 2012.06.16
  13. 13. ご清聴ありがとうございました VSUG DAY - Winter 2012.06.16

×