10

来自我对问题“任务中的秒表似乎是所有任务的附加,只想测量任务间隔”的“答案”

创建新的Stopwatch实例之间可能有哪些区别:

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

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

隐含的子问题:
为什么StartNew()提供方法?

4

3 回答 3

11

StartNew,创建秒表的新实例并启动它。

简单new只是秒表实例化。它不会启动秒表。

对于您正在创建新实例并调用的当前代码,Start应该没有任何区别Stopwatch.StartNew()

请参阅Stopwatch.StartNew() - MSDN

此方法等效于调用 Stopwatch 构造函数,然后在新实例上调用 Start。

StartNew提供了一种更简单的方法来一步创建和启动秒表。

于 2013-04-28T03:58:04.407 回答
5

为什么要提供 StartNew() 方法?

这是一个更简单的选择。 StartNew实际上与分配一个新的秒表并立即启动它相同。

由于这是一个非常常见的用例,StartNew工厂方法只是简化和缩短了 API,并减少了使用秒表所需的代码。

于 2013-04-28T03:59:58.697 回答
1

初始化一个新的 System.Diagnostics.Stopwatch 实例并将经过的时间属性设置为零,并开始测量经过的时间

并将一行代码保存到隐式调用Start()方法

于 2020-02-05T10:47:11.313 回答