Start Debugging

タグ: valuetask

1 件

2026-10-03 csharpdotnetasync
非 async メソッドでアロケーションなしに ValueTask を同期的に待機する方法
まず IsCompleted を確認し、GetAwaiter().GetResult() で結果を読み取れば、コストは 0 バイトです。ValueTask がまだ保留中の場合に限ってブロックし、その際は呼び出しごとに 72 から 208 バイトを割り当てる AsTask() ではなく、キャッシュしたイベントと UnsafeOnCompleted を使います。.NET 10 と .NET 11 RC1 で計測しました。