Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

スレッド

タスク

用途

タスクの分割

awaitを切れ目として、プログラマが意識して時間のかかる
バックグラウンド処理(ネットワーク バインドまたは I/O バインドの処理)を分割する。

詳細

使い方

非同期メソッドの戻り値

void型

Task型

Task<T>型

非同期メソッドの呼び出し

Task.Run()、Task.Wait()メソッド

await演算子

その他

Task.WhenAll?()

進捗報告

これだと、進捗報告をどう実装するかが?ですが、以下を見ると、
Progressクラス、IProgress<T>インターフェースを使用するらしい事が解る。

スレッド同期

仕組みから

スレッドを使用した処理を記述しないが、分割されたタスクは、

このため、一連の処理が(分割されたタスクが)、

スレッド同期ツールキットは使用不可

従って、スレッド同期のlock等は無意味。
従来のスレッド同期ツールキットは使用不可。

lock/mutex/semaphoreはtaskで全て使用禁止

WaitFor?[Single|Multi]Objectは例外的に使用可

これは、Win32の待機関数のWaitFor?[Single|Multi]Objectは、
スレッドに限らず様々な「オブジェクト」の状態が変化する(シグナル状態になる)のを待つ関数であるためと考える。

参考


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS