1
我有一個方法可以執行一些工作。我在該方法中使用System.Diagnostics.Stopwatch來測量執行該方法執行任務所用的時間。這種方法被多個線程多次調用,如下所示:在多線程調用的方法中使用Stopwatch安全嗎?
ArrayList workerThreads = new ArrayList();
for (int i = 0; i < numThread; i++)
{
Thread workerThread = new Thread(DoWork);
workerThread.IsBackground = true;
workerThreads.Add(workerThread);
}
for (int i = 0; i < numThread; i++)
{
((Thread)workerThreads[i]).Start();
}
public void DoWork()
{
Stopwatch sw = Stopwatch.StartNew();
// Do something
sw.Stop();
Log.Info(sw.ElapsedMilliseconds);
}
按照我的方式使用秒錶是否安全?結果是準確的還是我需要明確地鎖定它,以便線程不會跨越彼此的經過時間值?
謝謝@Andrey。我很好奇,因爲我面對的是[this](http://stackoverflow.com/questions/21573756/stopwatch-misbehaving-because-of-multiple-threads)場景: – Cranialsurge