C#中timer定时器用法实例

C#中timer定时器用法实例

简介

C#中的timer定时器用于在指定时间间隔内重复执行某些代码,非常常用。下面将详细讲解timer的用法以及两个实例。

用法

C#中的timer定时器主要分为两种:System.Threading.Timer和System.Timers.Timer。这两种timer主要的区别是使用方式不同。下面分别进行介绍。

System.Threading.Timer

  1. 首先需要先创建一个 timer 对象, 代码如下:
    Timer t = new Timer(callback, null, delay, period);
    其中,callback是一个委托类型的参数,delay是一个引用类型的object参数,period是一个整型参数。
  2. callback方法需要自己编写,该方法中可以执行相应的操作。注意,该方法需要符合ThreadStart委托定义的方法格式。
  3. Timer中的第二个参数表示state参数,该参数是可选的,如果不需要传递参数,可以传入null;否则可以传入一个object类型的实例。
  4. Timer中的第三个和第四个参数分别是指定timer第一次执行回调函数的等待时间以及定时执行周期,如果需要只执行一次则传入Timeout.Infinite或者-1.

System.Timers.Timer

  1. 首先需要先创建一个 timer 对象,代码如下:
    Timer t = new System.Timers.Timer(interval);
    其中interval表示定时间隔。
  2. 通过timer的Elapsed事件来执行代码,代码如下:
    t.Elapsed += new ElapsedEventHandler(callback);
    其中callback方法需要自己编写,该方法中可以执行相应的操作。注意,可以传入一个object类型的sender参数和一个ElapsedEventArgs类型的e参数。
  3. 开始执行定时器,通过timer的Start()方法来启动定时器。如:
    t.Start();
  4. 停止定时器,通过timer的Stop()方法来停止定时器。如:
    t.Stop();

示例

示例1:System.Threading.Timer实例

以下是一个使用System.Threading.Timer实现输出当前时间的示例:

using System;
using System.Threading;

class Program
{
    static void Main(string[] args)
    {
        Timer t = new Timer(printTime, null, 0, 1000);
        Console.ReadLine();
    }

    static void printTime(Object state)
    {
        Console.WriteLine(DateTime.Now.ToString("HH:mm:ss"));
    }
}

以上代码会每隔1秒输出当前时间。

示例2:System.Timers.Timer实例

以下是一个使用System.Timers.Timer实现计时器的示例:

using System;
using System.Timers;

class Program
{
    static int count = 0;

    static void Main(string[] args)
    {
        Timer t = new System.Timers.Timer(1000);
        t.Elapsed += new ElapsedEventHandler(countTime);
        t.Start();

        Console.ReadLine();
    }

    static void countTime(Object sender, ElapsedEventArgs e)
    {
        Console.WriteLine(count);
        count++;
    }
}

以上代码会每隔1秒输出计数器的值,并且计数器会每次输出自增1。

以上就是关于C#中timer定时器用法的详细说明以及两个实例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中timer定时器用法实例 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • .NET Core利用BsonDocumentProjectionDefinition和Lookup进行 join 关联查询(推荐)

    以下是关于在.NET Core中使用BsonDocumentProjectionDefinition和Lookup进行join关联查询的详细攻略: 1. 什么是BsonDocumentProjectionDefinition和Lookup 在MongoDB中,我们可以使用lookup操作符来实现join关联查询。在.NET Core中,我们可以使用BsonP…

    C# 2023年5月12日
    00
  • C# 中如何取绝对值函数

    当我们需要取绝对值函数时,可以使用Math库中的Abs函数。具体的使用方法如下所示: //取整数的绝对值 int a = -5; int absA = Math.Abs(a); //absA的值为5 //取小数的绝对值 double b = -3.14; double absB = Math.Abs(b); //absB的值为3.14 上述代码中,我们使用了…

    C# 2023年5月15日
    00
  • ASP.NET通过Remoting service上传文件

    下面是关于“ASP.NET通过Remotingservice上传文件”的完整攻略,包含两个示例。 1. RemotingService简介 RemotingService是.NET Framework中的一个类,它提供了一种在应用程序域之间进行远程调用的方式。使用RemotingService,可以将对象的方法暴露给远程客户端,从而实现远程调用。 2. 通过…

    C# 2023年5月15日
    00
  • Entity Framework使用LINQ操作实体

    下面我将为你详细讲解如何使用Entity Framework使用LINQ操作实体。 什么是Entity Framework Entity Framework(EF)是一个面向对象的ORM(Object/Relational Mapping,对象关系映射)框架。通过EF,我们可以将数据库中的数据转换为对象,在程序中使用对象的方式操作数据库。它使得我们可以使用像…

    C# 2023年6月3日
    00
  • ASP.NET Core中引用OpenAPI服务的添加示例

    ASP.NET Core中引用OpenAPI服务的添加示例 OpenAPI是一种用于描述RESTful API的规范。在ASP.NET Core中,可以使用Swashbuckle.AspNetCore包来生成OpenAPI文档。本攻略将提供一些示例,演示如何在ASP.NET Core中引用OpenAPI服务。 步骤 步骤1:创建一个新的ASP.NET Cor…

    C# 2023年5月17日
    00
  • C#打印日志的方法总结

    针对“C#打印日志的方法总结”,以下是详细的攻略: 什么是日志 在开发过程中,我们需要记录一些关键信息来方便排查问题或者进行后续分析。而日志就是我们记录这些信息的工具。日志可以记录程序运行时的各种信息,包括但不限于:debug信息、错误堆栈信息、请求和响应信息等。而我们可以使用一些工具来进行日志的打印和管理。 C#中的日志打印方法 1.使用Trace和Deb…

    C# 2023年5月15日
    00
  • C#弹出对话框确定或者取消执行相应操作的实例代码

    下面我来为您讲解“C#弹出对话框确定或者取消执行相应操作的实例代码”的完整攻略。 1. 实现思路 弹出对话框并等待用户的操作结果,根据用户的选择执行相应的操作,通常有两种选择:确定或者取消。 在C#中,我们可以使用MessageBox类来实现弹出对话框,并使用 DialogResult 枚举表示用户的选择结果。 2. 示例说明 下面给出两个 C# 弹出对话框…

    C# 2023年6月7日
    00
  • .NET创建、删除、复制文件夹及其子文件的实例方法

    以下是“.NET创建、删除、复制文件夹及其子文件的实例方法”的完整攻略: 创建文件夹及子目录 在.NET中,可以使用Directory.CreateDirectory()方法来创建一个新的文件夹。如果指定的目录路径已经存在,则不会创建任何内容。此外,如果想在新的文件夹中创建子目录,可以将完整的路径添加到方法中。例如: Directory.CreateDire…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部