What's the difference between creating a new instance with "new() and ".StartNew()"?

.net, c#, stopwatch, system.diagnostics

Solution

`StartNew`, create new instance of the stop watch and starts it as well.

Simple `new` is Stopwatch instantiation only. It doesn't start the Stopwatch.

For your current code where you are creating a new instance and calling `Start`, there shouldn't be any difference to `Stopwatch.StartNew()`

See Stopwatch.StartNew() - MSDN

This method is equivalent to calling the Stopwatch constructor and then calling Start on the new instance.

`StartNew` provides an easier way to create and start Stopwatch in one step.

Problem

Coming from my "answer" to question "Stopwatch in a Task seems to be additive across all tasks, want to measure just task interval" What are the possible differences between creating a new Stopwatch instance as: ``` Stopwatch timer = System.Diagnostics.Stopwatch.StartNew(); ``` with ``` Stopwatch timer = new Stopwatch(); timer.Start(); ``` Implied subquestion: Why was `StartNew()` method provided?

Original source

Related problems