アーカイブ : 2023/11

[C#] Task.Run() のラムダ式でクロージャを回避して、ヒープメモリを軽減する

Task.Run() とラムダ式を使用すると、簡単にタスクを実行できます。しかし、ラムダ式で外部変数をキャプチャすると、クロージャによりメモリアロケーションが発生します。
外部変数を引数に取る静的メソッドを用意することで、ラムダ式のメモリアロケーションを削減できます。
Task.Run() では実現できないため、Task.Factory.StartNew() を使用して実現する方法です。

C# C# パフォーマンス BenchmarkDotNet 2023-11-24 (金)