次のようなコードがあります。
public void Start()
{
var watch = new Stopwatch();
watch.Start();
Task.Factory.StartNew(MyMethod1);
Task.Factory.StartNew(MyMethod2);
watch.Stop();
Log(watch.ElapsedMilliseconds);
Task.Factory.StartNew(MyMethod3);
}
MyMethod1 と MyMethod2 が非同期で呼び出されるため、 watch.Stop() が間違ったタイミングで呼び出されます。MyMethod1 と MyMethod2 が終了した後に .Stop が呼び出されてログに記録されるようにする方法はありますが、MyMethod3 が待機する必要がないことを確認します。
すべてのストップウォッチ機能を Start() メソッドに保持し、3 つのメソッド、つまり MyMethod1、MyMethod2、および MyMethod3 のいずれにもログを記録したくない