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
  • これらの手法の複数を使用してインスタンスを使用する。

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

A ValueTask は、a またはインスタンスを 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 値が等しくないかどうかを判断します。

適用対象