В чем разница между созданием нового экземпляра с помощью "new() and ".StartNew()"?

из моего "ответа" на вопрос "секундомер в задаче кажется аддитивным во всех задачах, хотите измерить только интервал задачи"

каковы возможные различия между созданием нового секундомер например так:

Stopwatch timer = System.Diagnostics.Stopwatch.StartNew();

С

Stopwatch timer = new Stopwatch();
timer.Start();  

подразумевается subquestion:
Почему StartNew() метод?

2 ответов


StartNew, создайте новый экземпляр секундомера и запустите его.

простой new только экземпляр секундомера. Секундомер не включается.

для вашего текущего кода, где вы создаете новый экземпляр и вызов Start, там не должно быть никакой разницы Stopwatch.StartNew()

посмотреть секундомер.StartNew () - MSDN

этот метод эквивалентно для вызова секундомер конструктор и затем вызовите Start на новом экземпляре.

StartNew обеспечивает более простой способ создания и запуска секундомера в один шаг.


почему был предоставлен метод StartNew ()?

Это более простая альтернатива. StartNew фактически то же самое, что и выделение нового секундомера и его мгновенный запуск.

Так как это очень распространенный случай использования StartNew заводской метод просто упрощает и сокращает API и уменьшает код, необходимый для использования секундомера.