13,009
回編集
|  (→概要) |  (→概要) | ||
| 1行目: | 1行目: | ||
| == 概要 == | == 概要 == | ||
| .NET Framework 4.5で導入されたC# 5.0(Visual Studio 2012) からは、マルチスレッドプログラミングをコンパイラレベルでサポートしている。<br> | .NET Framework 4.5で導入されたC# 5.0(Visual Studio 2012) からは、マルチスレッドプログラミングをコンパイラレベルでサポートしている。<br> | ||
| 具体的には、<code>async</code>と<code>await</code>というキーワードが導入された。<br> | |||
| これは、タスクベース非同期パターン(Task-based Asynchronous Pattern、TAP)を実装するものである。<br> | これは、タスクベース非同期パターン(Task-based Asynchronous Pattern、TAP)を実装するものである。<br> | ||
| <br> | <br> | ||
| このタスクベース非同期パターンでは、処理の開始はMethodNameAsyncという形式をとる。<br> | このタスクベース非同期パターンでは、処理の開始はMethodNameAsyncという形式をとる。<br> | ||
| そしてその戻り値を、Task、Task<T> | そしてその戻り値を、Task、Task<T>、voidとし、Taskを待つには<code>await</code>キーワードを付加する。<br> | ||
| また、<code>await</code>キーワードを付加した関数には、メソッドのシグネチャに<code>async</code>キーワードを付加する。<br> | |||
| <br> | <br> | ||
| 以下の例は、Task<int>型、Task<(bool, string)>型 (タプル型) を返す非同期関数である。<br> | |||
|   <syntaxhighlight lang="c#"> |   <syntaxhighlight lang="c#"> | ||
|   // Task<int>型を返す非同期関数 |   // Task<int>型を返す非同期関数 | ||