12,925
回編集
(→概要) |
(→概要) |
||
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>型を返す非同期関数 |