今、私たちはこのようなものを使用しています
stopWatch.Start();
try
{
method();
}
finally
{
stopWatch.Stop();
}
これは同期メソッドでは問題なく機能しますが、一部は非同期で実行されるため、複数のスレッドが実行されていると時間がずれます。現在のスレッドで費やされた時間のみを測定する System.Diagnostics.Stopwatch に相当するものはありますか?
内部ベータ (アルファ?) リリースで長期間にわたってデータを収集したいと考えており、プロファイラーでフルタイムで実行することは現実的なオプションではありません。
編集: 明確にするために、method() の実行に費やされた時間のみを測定したいので、Method1() と Method2() の両方が同時に開始し、Method1 が 2 秒マークで終了し、Method2 が 4 秒マークで終了した場合、 Method1 の実行に約 1 秒を費やし、Method2 の実行に約 3 秒を費やしたことを教えてくれるものが必要です (最初の 2 秒間は (シングル コアと仮定) プロセッサを均等に共有したと仮定します。