C# 中使用Stopwatch计时器实现暂停计时继续计时功能

最近程序上用到了计时功能,对某个模块进行计时,暂停的时候模块也需要暂停,启动的时候计时继续

用到了Stopwatch

Stopwatch的命名空间是using System.Diagnostics;

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            ////重新设置为零
            //sw.Reset();
            ////重新设置并开始计时
            //sw.Restart();
            ////结束计时
            //sw.Stop();
            //获取运行时间间隔
            TimeSpan ts = sw.Elapsed;
            //获取运行时间[毫秒]
            long times = sw.ElapsedMilliseconds;
            //获取运行的总时间
            long times2 = sw.ElapsedTicks;
            //判断计时是否正在进行[true为计时]
            bool isrun = sw.IsRunning;
            //获取计时频率
            long frequency = Stopwatch.Frequency;
            //计时开始
            sw.Start();
            Thread.Sleep(1000);
            //计时结束
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
            Console.ReadLine();
            Thread.Sleep(2000);
            Thread.Sleep(3000);
        }
    }
}

需要进一步研究的同学可以查看官方文档

Stopwatch 类 (System.Diagnostics) | Microsoft Docs

到此这篇关于C# 中使用Stopwatch计时器可暂停计时继续计时的文章就介绍到这了,更多相关C# Stopwatch计时器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • .NET/C# 使用Stopwatch测量运行时间

    本文介绍了.NET/C# 使用Stopwatch测量运行时间,分享给大家,具体如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • C#计时器的三种实现方法

    在.NET中有三种计时器: 一. System.Windows.Forms命名空间下的Timer控件,和所在的Form属于同一个线程.Timer控件只有绑定了Tick事件和设置Enabled属性为True之后才会自动计时,Stop()方法,Start()方法启动计时器重新计时: MyTimer.Enabled = true;  //启动计时器 MyTimer.Interval = 1000; //设置计时器时间间隔,单位为ms MyTimer.Stop(); //停止计时 MyTimer.Sta

  • c# 实现计时器功能

    场景 在低液位预警弹窗点击确定后需要实现一个计时器,比如在五分钟后再执行监控. 实现思路是使用Timer然后每秒执行一个方法,在方法中对秒数进行减1操作,等倒计时结束后执行相应的操作. 实现 但是Timer有三个 1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类里   3.定义在System.Timers.Timer类里 一开始使用的是System.Windows.Forms里面的 System.Windows.Forms.Tim

  • C#精确到纳秒级别的计时器类实现代码

    主要用到了win32里面的QueryPerformanceCounter和QueryPerformanceFrequency两个函数 文档链接:https://docs.microsoft.com/zh-cn/windows/win32/api/profileapi/nf-profileapi-queryperformancecounter class NanoSecondTimer { [DllImport("Kernel32.dll")] private static extern

  • C#使用StopWatch获取程序毫秒级执行时间的方法

    本文实例讲述了C#使用StopWatch获取程序毫秒级执行时间的方法.分享给大家供大家参考.具体分析如下: 这个比时间通过DateTime在程序前后记录时间,然后通过TimeSpan相减的办法要精确,也更容易理解. using System.Diagnostics;//引用相关的命名空间 Stopwatch st=new Stopwatch ();//实例化类 st. Start();//开始计时 //需要统计时间的代码段 st.Stop();//终止计时 Response.Write(st.E

  • 如何使用C# Stopwatch 测量微秒级精确度

    跟同事讨论到- 用C# Stopwatch 取得效能数值,Stopwatch.ElapsedMilliseconds 只到毫秒(ms),如果需要更高的时间精确度(微秒μs,甚至奈秒ns),该怎么做? 原以为要费番功夫,在Stackoverlow查到讨论,答案意外地简单. 准备测试程式如下,比较MD5 及SHA1 计算1MB byte[] 杂凑值所秏费时间: static byte[] data = new byte[1024 * 1024]; static void Main(string[]

  • C# 中使用Stopwatch计时器实现暂停计时继续计时功能

    最近程序上用到了计时功能,对某个模块进行计时,暂停的时候模块也需要暂停,启动的时候计时继续 用到了Stopwatch Stopwatch的命名空间是using System.Diagnostics; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; using System.T

  • C#中foreach语句使用break暂停遍历的方法

    本文实例讲述了C#中foreach语句使用break暂停遍历的方法.分享给大家供大家参考.具体分析如下: 下面的代码演示了在C#中使用foreach时如何通过break语句暂停数据遍历 using System; public class w3demo { public static void Main() { int sum = 0; int[] nums = new int[10]; // give nums some values for(int i = 0; i < 10; i++) n

  • Android中CountDownTimer倒计时器用法实例

    本文实例讲述了Android中CountDownTimer倒计时器用法.分享给大家供大家参考,具体如下: 在平时我们编程的时候,经常会用到倒计时这个功能,很多人不知道Android已经帮封装好了一个类,往往都自己写.现在发现了这个类,大家共享一下: 在一个TextView不断显示剩下的时间,代码如下: private TextView vertifyView; private CountDownTimer timer = new CountDownTimer(10000, 1000) { @Ov

  • 详解CocosCreator中几种计时器的使用方法

    一.setTimeOut 3秒后打印abc.只执行一次. setTimeout(()=>{console.log("abc"); }, 3000); 删除计时器,3秒后不会输出abc. let timeIndex; timeIndex = setTimeout(()=>{console.log("abc"); }, 3000); clearTimeout(timeIndex); setTimeout这样写,test函数中输出的this是Window对象

  • C#中ManualResetEvent实现线程的暂停与恢复

    目录 背景 ManualResetEvent介绍 实现设计 背景 前些天遇到一个需求,在没有第三方源码的情况下,刷新一个第三方UI,并且拦截到其ajax请求的返回结果.当结果为AVALIABLE的时候,停止刷新并语音提示,否则继续刷新. 分析这个需求,发现需要控制一个刷新循环的暂停与开始,因此网上搜到了通过ManualResetEvent实现线程的暂停与恢复. ManualResetEvent介绍 ManualResetEvent是一个通过信号机制,实现线程间状态同步的类.常用的方法有以下三个:

  • jQuery的ajax中使用FormData实现页面无刷新上传功能

    接着上一篇ajax系列之用jQuery的ajax方法向服务器发出get和post请求写,这篇主要写如何利用ajax和FormData实现页面无刷新的文件上传效果,主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的FormData接口.关于FormData,大家可以看MDN文档. 1,先看效果图 期望的功能和效果很简单:点击页面中的上传文件表单控件,选择文件后点击"ajax提交",将文件上传至服务器,上传成功后,页面给出一个简单的提示. 2,前端的代

  • php异步:在php中使用fsockopen curl实现类似异步处理的功能方法

    PHP从主流来看,是一门面向过程的语言,它的最大缺点就是无法实现多线程管理,其程序的执行都是从头到尾,按照逻辑一路执行下来,不可能出现分支,这一点是限制php在主流程序语言中往更高级的语言发展的原因之一. 在PHP中我们有的时候其实希望在执行某项操作的时候,同时去执行另外一项操作,举一个场景:在用户抢票的时候,你并不希望用户排队去连接数据库进行查询.判断.插入,完成之后再返回用户结果.其实我们并不需要用户等那么久的时间,用户提交之后,直接告诉他已经抢票成功了就可以了,至于各种操作,交给后台去处理

  • MVC中基于Ajax和HTML5实现文件上传功能

    引言 在实际编程中,经常遇到实现文件上传并显示上传进度的功能,基于此目的,本文就为大家介绍不使用flash 或任何上传文件的插件来实现带有进度显示的文件上传功能. 基本功能:实现带有进度条的文件上传功能 高级功能:通过拖拽文件的操作实现多个文件上传功能 背景 HTML5提供了一种标准的访问本地文件的方法--File API规格说明,通过调用File API 能够访问文件信息,也可以利用客户端来验证上传文件的类型和大小是否规范. 该规格说明包含以下几个接口来使用文件: File接口:具有文件的"读

  • Android中判断屏幕是否亮屏和是否解锁功能

    1.屏幕是否亮屏: PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); //true为打开,false为关闭 boolean ifOpen = powerManager.isScreenOn(); 2.屏幕是否解锁: KeyguardManager mKeyguardManager = (KeyguardManager) context.getSystemServi

  • Android编程实现项目中异常捕获及对应Log日志文件保存功能

    本文实例讲述了Android编程实现项目中异常捕获及对应Log日志文件保存功能.分享给大家供大家参考,具体如下: 做程序开发,肯定离不开与BUG打交道,更加离不开程序异常的出现.在开发的时候,我们可以通断点调试,日志打印,异常捕获工具等方式发现或处理程序中的Exception.那客户在使用我们的应用时,程序了问题,我们怎么可以知道呢?当然,我们可以加上友盟统计等第三方工具.另外还能怎么做呢?那就是把异常信息通过文档地形式保存下来,如果用户在使用的时候程序出了异常,可以让用户把对应的日志信息发给我

随机推荐