ValueTask 構造体

定義

非同期操作の待機可能な結果が提供されます。

public value class ValueTask : IEquatable<System::Threading::Tasks::ValueTask>
public readonly struct ValueTask : IEquatable<System.Threading.Tasks.ValueTask>
type ValueTask = struct
Public Structure ValueTask
Implements IEquatable(Of ValueTask)
継承
ValueTask
実装

注釈

インスタンスはValueTask待機するか、using AsTaskTask変換できます。 インスタンスは ValueTask 1 回だけ待機でき、コンシューマーはインスタンスが完了するまで呼び出 GetAwaiter() しを行いません。 これらの制限が許容できない場合は、呼び出AsTaskして a Task に変換ValueTaskします。

インスタンスに対して次の操作を ValueTask 実行しないでください。

  • インスタンスを複数回待機しています。
  • 複数回呼び出します AsTask
  • これらの手法の 1 つ以上を使用してインスタンスを使用する。

上記のいずれかを行うと、結果は未定義になります。

A ValueTask は、インスタンスまたはインスタンスをラップ Task できる構造体です IValueTaskSourceValueTask非同期メソッドからインスタンスをIValueTaskSourceラップする値を返すことで、高スループットのアプリケーションは再利用可能なオブジェクトのプールを使用して割り当てを回避できますIValueTaskSource。 詳細については、「 ValueTask の理由、内容、およびタイミングについて」を参照してください。

代わりに a を ValueTask 使用すると、 Task いくつかのオーバーヘッドが発生します。 複数のフィールドを持つ構造体であるため ValueTask 、メソッドからそれを返すと、単一 Task の参照を返す場合と比較して、より多くのデータがコピーされます。 そのため、結果を返さない非同期メソッドの既定の選択肢は Task、. パフォーマンス分析でそれが価値があると証明された場合にのみ、ValueTaskTask. このプロパティを Task.CompletedTask 使用して、正常に完了したシングルトンを返す Task メソッドが同期的かつ正常に完了した場合に戻す必要があります。

注意

この型のValueTask使用は C# 7.0 以降でサポートされており、Visual Basicのどのバージョンでもサポートされていません。

注意

パラメーターなしのコンストラクターまたは構文 (初期化ゼロ構造体) によって default(ValueTask) 作成されたインスタンスは、同期的に正常に完了した操作を表します。

コンストラクター

ValueTask(IValueTaskSource, Int16)

操作を表す指定された IValueTaskSource オブジェクトを使用して、ValueTask クラスの新しいインスタンスを初期化します。

ValueTask(Task)

操作を表す指定されたタスクを使用して、ValueTask クラスの新しいインスタンスを初期化します。

プロパティ

CompletedTask

既に正常に完了したタスクを取得します。

IsCanceled

このオブジェクトが取り消された操作を表すかどうかを示す値を取得します。

IsCompleted

このオブジェクトが完了した操作を表すかどうかを示す値を取得します。

IsCompletedSuccessfully

このオブジェクトが正常に完了した操作を表すかどうかを示す値を取得します。

IsFaulted

このオブジェクトが失敗した操作を表すかどうかを示す値を取得します。

メソッド

AsTask()

この ValueTask を表す Task オブジェクトを取得します。

ConfigureAwait(Boolean)

この値の awaiter を構成します。

Equals(Object)

指定したオブジェクトが現在の ValueTask インスタンスと等しいかどうかを判断します。

Equals(ValueTask)

指定した ValueTask オブジェクトが、現在の ValueTask オブジェクトと等しいかどうかを判断します。

FromCanceled(CancellationToken)

指定されたキャンセル トークンを使用したキャンセルにより完了した ValueTask を作成します。

FromCanceled<TResult>(CancellationToken)

指定されたキャンセル トークンを使用したキャンセルにより完了した ValueTask<TResult> を作成します。

FromException(Exception)

指定された例外で完了した ValueTask を作成します。

FromException<TResult>(Exception)

指定された例外で完了した ValueTask<TResult> を作成します。

FromResult<TResult>(TResult)

指定した結果で成功した ValueTask<TResult> を作成します。

GetAwaiter()

この値の awaiter を作成します。

GetHashCode()

このインスタンスのハッシュ コードを返します。

Preserve()

将来のある時点で使用される可能性のある ValueTask を取得します。

演算子

Equality(ValueTask, ValueTask)

2 つの ValueTask の値が等しいかどうかを比較します。

Inequality(ValueTask, ValueTask)

2 つの ValueTask 値が等しくないかどうかを判断します。

適用対象