【问题标题】:What's the difference between creating a new instance with "new() and ".StartNew()"?使用“new()”和“.StartNew()”创建新实例有什么区别?
【发布时间】:2013-04-28 03:56:24
【问题描述】:

来自我对问题"Stopwatch in a Task seems to be additive across all tasks, want to measure just task interval"的“回答”

创建一个新的Stopwatch 实例有哪些可能的区别:

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

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

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

【问题讨论】:

    标签: c# .net system.diagnostics stopwatch


    【解决方案1】:

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

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

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

    Stopwatch.StartNew() - MSDN

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 点评来源: 嗨,这篇文章似乎没有为问题提供quality answer。请编辑您的答案并改进它,或者将其作为对问题/其他答案的评论发布。
        猜你喜欢
        • 1970-01-01
        • 2020-11-18
        • 2018-08-02
        • 2011-11-22
        • 2015-08-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        相关资源
        最近更新 更多