この記事は2019年04月26日に投稿しました。
目次
- 作者: WINGSプロジェクト?江賢,山田祥寛
- 出版社/メーカー: 日経BP
- 発売日: 2017/11/09
- メディア: 単行本
- この商品を含むブログを見る
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているC#で非同期処理を行う方法についてです。
2. C#で非同期処理を行う
C#で非同期処理を行うには、以下のような処理になります。
非同期で行うメソッドをasyncを付けて定義します。
戻り値はTask<戻り値の型>とします。非同期で行うメソッドをTaskを使って実行します。
非同期で行うメソッドの戻り値をTask.Resultで取得します。 Task.Resultの型は、1で定義したTask<戻り値の型>の戻り値の型になります。
実装例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; // Taskを使用するために追加します。 namespace CSharpAsyncAwait { class Program { static void Main(string[] args) { // 非同期処理を行います。 var task = Task.Run(() => GetValue()); // すぐに実行されます。 Console.WriteLine("Hello"); // 非同期処理(GetValue)終了後に実行されます。 Console.WriteLine(task.Result); } // 非同期処理を行うメソッド static async Task<string> GetValue() { // 非同期処理中に処理の終了を待ちます。 await Task.Delay(3000); return "Done"; } } }
3. おわりに
C#で通信処理を実装する必要があり、非同期処理の実装方法を調べてみました。
非同期処理の戻り値を取得できるのは便利です。
実戦で役立つ C#プログラミングのイディオム/定石&パターン
- 作者: 出井秀行
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/18
- メディア: 大型本
- この商品を含むブログ (1件) を見る
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688