当前位置:  开发笔记 > 编程语言 > 正文

C#中是否有一个不在Windows.Forms命名空间中的计时器类?

如何解决《C#中是否有一个不在Windows.Forms命名空间中的计时器类?》经验,为你挑选了3个好方法。

我想在用C#编写的简单.NET应用程序中使用计时器.我能找到的唯一一个是Windows.Forms.Timer类.我不想仅为我的控制台应用程序引用此命名空间.

是否有一个C#计时器(或类似计时器)类用于控制台应用程序?



1> albertein..:

System.Timers.Timer

正如MagicKat所说:

System.Threading.Timer

你可以在这里看到差异:http: //intellitect.com/system-windows-forms-timer-vs-system-threading-timer-vs-system-timers-timer/

你可以在这里看到MSDN示例:

http://msdn.microsoft.com/en-us/library/system.timers.timer(VS.80).aspx

和这里:

http://msdn.microsoft.com/en-us/library/system.threading.timer(VS.80).aspx


这确实回答了问题,但谈到"最小".Spoon的答案要好得多.

2> Eric Schoono..:

我会TimerSystem.Timers命名空间中推荐这个类.同样有趣的Timer是,System.Threading名称空间中的类.

using System;
using System.Timers;

public class Timer1
{
    private static Timer aTimer = new System.Timers.Timer(10000);

    public static void Main()
    {
        aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        aTimer.Enabled = true;

        Console.WriteLine("Press the Enter key to exit the program.");
        Console.ReadLine();
    }

    // Specify what you want to happen when the Elapsed event is 
    // raised.
    private static void OnTimedEvent(object source, ElapsedEventArgs e)
    {
        Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
    }
}

来自MSDN文档的示例.



3> theburningmo..:

至少有我所知道的System.Timers.Timer和System.Threading.Timer类.

有一点需要注意(如果你之前没有这样做过),请说你的using子句中已经有了System.Threading命名空间,但实际上你想在System.Timers中使用定时器,你需要这样做:

using System.Threading;
using Timer = System.Timers.Timer;

Jon Skeet在他的多线程指南中有一篇关于Timers的文章,值得一读:http: //www.yoda.arachsys.com/csharp/threads/timers.shtml

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有