Skip to Content
プログラミングC# 第8版
book

プログラミングC# 第8版

by Ian Griffiths, 木下 哲也, 鈴木 幸敏
June 2021
Intermediate to advanced
800 pages
13h 5m
Japanese
O'Reilly Japan, Inc.
Content preview from プログラミングC# 第8版

16.3 タスク

 本章の前半では、Taskクラスを使用して何かしらの作業をスレッドプール上で実行する方法を説明をしました。Taskクラスは単なるスレッドプールのラッパーというわけではありません。Taskクラスやタスク並列ライブラリ(TPL:Task Parallel Library)の関連する型を使用すると、さまざまなシナリオに対応できます。C#の非同期言語機能(「17章 非同期言語機能」のトピック)はタスクオブジェクトを直接扱えるので、タスクは特に重要です。.NETクラスライブラリの非常に多くのAPIがタスクベースの操作をサポートしています。

 タスクはスレッドプールを使うための望ましい方法ですが、その用途はマルチスレッド処理に限られません。それよりももっと柔軟な抽象化が行われています。

16.3.1 TaskクラスとTask<T>クラス

 TPLの中核には、TaskTaskクラスから派生しているTask<T>という2つのクラスがあります。Task基底クラスは、完了までにある程度の時間がかかる処理を表します。Task<T>Taskクラスを拡張し、完了時にはその結果が(T型として)得られる処理を表します(非ジェネリック版のTaskは結果を全く返しません。これは非同期でのvoid型の返り値に相当します)。なお、必ずしもこれらがスレッドと結び付くわけではない点に注意してください。

 多くのI/O操作は完了するまでに時間がかかるため、ほとんどの場合、.NETクラスライブラリにはI/O操作用のタスクベースのAPIがあります。例16-15では非同期メソッドを使用して、Webページのコンテンツを文字列として取得しています。この処理では即座に文字列を結果として返せるわけではないので(ページのダウンロードにしばらく時間がかかるので)、代わりにタスクを返します。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

動かして学ぶ量子コンピュータプログラミング ―シミュレータとサンプルコードで理解する基本アルゴリズム

動かして学ぶ量子コンピュータプログラミング ―シミュレータとサンプルコードで理解する基本アルゴリズム

Eric R. Johnston, Nic Harrigan, Mercedes Gimeno-Segovia, 北野 章, 丸山 耕司
ユーザーストーリーマッピング

ユーザーストーリーマッピング

Jeff Patton, 川口 恭伸, 長尾 高弘
Unityによるモバイルゲーム開発 ―作りながら学ぶ2D/3Dゲームプログラミング入門

Unityによるモバイルゲーム開発 ―作りながら学ぶ2D/3Dゲームプログラミング入門

Jon Manning, Paris Buttfield-Addison, 鈴木 久貴, あんどうやすし, 江川 崇, 安藤 幸央, 高橋 憲一

Publisher Resources

ISBN: 9784873119366Other