C#中获取程序执行时间的三种方法

 更新时间:2025年10月15日 09:20:29   作者:_Csharp  
在程序设计过程中,经常需要在主窗体中动态地显示程序的运行时间,本文介绍了几种在C#中测量时间间隔的方法,包括使用System.DateTime.Now获取当前时间、利用System.Diagnostics.Stopwatch进行更精确的时间测量,需要的朋友可以参考下

在C#中,获取程序执行时间通常有以下几种方法:

1. 使用DateTime类

你可以在程序开始执行前获取当前时间,然后在程序结束时再次获取当前时间,通过这两个时间点计算程序执行时间。

using System;
 
class Program
{
    static void Main()
    {
        DateTime startTime = DateTime.Now;
 
        // 执行你的代码
        for (int i = 0; i < 1000000; i++)
        {
            // 示例:一个简单的循环
        }
 
        DateTime endTime = DateTime.Now;
        TimeSpan executionTime = endTime - startTime;
 
        Console.WriteLine("程序执行时间: " + executionTime.TotalMilliseconds + " 毫秒");
    }
}

2. 使用Stopwatch类

System.Diagnostics.Stopwatch类是测量时间的一种更精确的方法,特别是对于需要高精度计时的场景。

using System;
using System.Diagnostics;
 
class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
 
        // 执行你的代码
        for (int i = 0; i < 1000000; i++)
        {
            // 示例:一个简单的循环
        }
 
        stopwatch.Stop();
        Console.WriteLine("程序执行时间: " + stopwatch.ElapsedMilliseconds + " 毫秒");
    }
}

3. 使用Environment.TickCount或Environment.TickCount64(对于64位系统)

这种方法不如Stopwatch精确,但对于简单的性能测试或快速获取时间差也是可行的。

using System;
 
class Program
{
    static void Main()
    {
        int startTime = Environment.TickCount; // 或使用Environment.TickCount64对于64位系统以避免溢出
 
        // 执行你的代码
        for (int i = 0; i < 1000000; i++)
        {
            // 示例:一个简单的循环
        }
 
        int endTime = Environment.TickCount; // 或使用Environment.TickCount64对于64位系统以避免溢出
        int executionTime = endTime - startTime; // 注意:这将返回以毫秒为单位的整数,但不直接提供TimeSpan对象。
 
        Console.WriteLine("程序执行时间: " + executionTime + " 毫秒");
    }
}

总结:

对于大多数应用场景,推荐使用Stopwatch类,因为它提供了更高的精度和灵活性。如果你仅仅需要快速获取两个时间点之间的差异,并且不介意精度问题,那么使用DateTime类或Environment.TickCount/Environment.TickCount64也是可行的。选择哪种方法取决于你的具体需求和精度要求。。

以上就是C#中获取程序执行时间的三种方法的详细内容,更多关于C#获取程序执行时间的资料请关注脚本之家其它相关文章!

相关文章

  • C#高效实现集合批量添加与删除操作

    C#高效实现集合批量添加与删除操作

    在C#中,对集合进行批量操作通常涉及使用集合类型提供的方法和特性,以及可能的循环或LINQ查询来高效地处理大量数据,本文整理了一些常见的方法和技巧,需要的可以了解下
    2025-01-01
  • 解读封送类、结构体和联合体实例

    解读封送类、结构体和联合体实例

    本文主要介绍了.NETFramework中类、结构体和联合体的封送处理,包括类通过COM互操作封送为接口、结构体通过StructLayoutAttribute属性指定布局和封送方式,以及联合体通过StructLayout(LayoutKind.Explicit)和FieldOffset特性精确控制内存布局
    2025-01-01
  • C#中Sleep() 和 Wait()的区别小结

    C#中Sleep() 和 Wait()的区别小结

    Sleep()和 Wait()是两个不同的方法,用于控制线程的执行,本文主要介绍了C#中Sleep()和Wait()的区别小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • C# 迭代器分部类与索引器详情

    C# 迭代器分部类与索引器详情

    这篇文章主要介绍了C#迭代器分部类与索引器详情,迭代器 迭代器解决的是集合访问的问题,提供一种方法顺序访问一个集合对象中的各个元素,而不暴露对象内部标
    2022-07-07
  • C#启动和停止windows服务的实例代码

    C#启动和停止windows服务的实例代码

    这篇文章介绍了C#启动和停止windows服务的实例代码,有需要的朋友可以参考一下
    2013-09-09
  • C#实现在Excel中插入和操作切片器

    C#实现在Excel中插入和操作切片器

    本文主要介绍了如何使用C#在Excel中插入和操作切片器,包括插入切片器到透视表和表格,修改切片器属性以及删除切片器,主要使用了Spire.XLSfor.NET库来实现这些功能,需要的朋友可以参考下
    2025-03-03
  • WinForm实现跨进程通信的方法

    WinForm实现跨进程通信的方法

    这篇文章主要介绍了WinForm实现跨进程通信的方法,通过一个WinMessageHelper类实现这一功能,需要的朋友可以参考下
    2014-08-08
  • c# Selenium爬取数据时防止webdriver封爬虫的方法

    c# Selenium爬取数据时防止webdriver封爬虫的方法

    这篇文章主要介绍了c# Selenium爬取数据时防止webdriver封爬虫的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • C#画圆角矩形的方法

    C#画圆角矩形的方法

    这篇文章主要介绍了C#画圆角矩形的方法,涉及C#绘图的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05
  • C#非递归先序遍历二叉树实例

    C#非递归先序遍历二叉树实例

    这篇文章主要介绍了C#非递归先序遍历二叉树的实现方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论