timer-关于System.Threading.Timer

问题描述

关于System.Threading.Timer

MSDN上的例子:

using System;
using System.Threading;

public class Example
{
    private static Timer ticker;

    public static void TimerMethod(object state)
    {
        Console.Write(".");
    }

    public static void Main()
    {
        ticker = new Timer(TimerMethod, null, 1000, 1000);

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

问题:Timer的第2个参数为什么是null?MSDN上有解释说“对于任何托管对象,如果没有对 Timer 的引用, Timer 会被垃圾回收,即使 Timer 仍处在活动状态。”这个null是否和后面的解释矛盾?

解决方案

https://msdn.microsoft.com/zh-cn/library/2x96zfy7.aspx

一个包含回调方法要使用的信息的对象,或者为 null。

可以为null,说的很清楚。

第二个参数只是传一个初始的状态,和引用不引用无关啊。比如说,你创建10个定时器,这个参数就可以用来给每个定时器编号。

解决方案二:

https://msdn.microsoft.com/zh-cn/library/2x96zfy7.aspx

一个包含回调方法要使用的信息的对象,或者为 null。

可以为null,说的很清楚。

第二个参数只是传一个初始的状态,和引用不引用无关啊。比如说,你创建10个定时器,这个参数就可以用来给每个定时器编号。

解决方案三:

?System.Threading.Timer 是一个使用回调方法的计时器,而且由线程池线程服务,简单且对资源要求不高。?只要在使用 Timer,就必须保留对它的引用。对于任何托管对象,如果没有对 Timer 的引用,计时器会被垃圾回收。即使 Timer 仍处在活动状态,也会被回收。当不再需要计时器时,请使用 Dispose 方法释放计时器持有的资源。?使用 TimerCall......
答案就在这里:System.Threading.Timer

解决方案四:

定时器的id一个包含回调方法要使用的信息的对象,或者为空引用

时间: 2024-04-03 07:58:47

timer-关于System.Threading.Timer的相关文章

项目中使用System.Threading.Timer对象时IIS释放Timer对象的问题

之前的一个项目中使用System.Threading.Timer对象时有没有遇到IIS释放Timer对象的问 题.说实话之前真没遇到过这个问题,就是说我之前定义的timer对象没有释放,运行正常, 回来后我就百度寻找这方面得信息,原来IIS在运行WebApp时对于非静态资源都是自动释放, 而我回头看了看之前写的Web程序,很幸运当时是这么写的: Global.asax文件 private static Timer time; //System.Threading; private static

asp.net System.Threading.Timer 如何更新UI

问题描述 我要写一个通知提示,现在想把它做成个用户控件(ascx),用System.Threading.Timer定时去更新数据,更新数据重新绑定Repeater的时候,UI没有更新,GOOGLE了一把没找到答案,都是讲的winform,只好来这里问问,希望大家能解答,用的是System.Threading.Timer,不是微软那个控件,我也知道那个控件可以. 解决方案 解决方案二:能访问到UI吗,如果能访问就有办法更新呀解决方案三:哎,,,这不可能的.Web应用不搞点手段怎么能直接"推&quo

注解:System.Threading.Timer

   System.Threading.Timer 是一个非常常用的定时器类,关于这个类的使用,我们需要注意以下几点:    1.System.Threading.Timer 的任何一个实例,实际上是通过使用win32底层(非.NET Thread Pool中的线程)来进行调度的.    2.当到达调度时刻时,System.Threading.Timer 将异步调用由TimerCallback参数指定的回调方法.也就是说TimerCallback所指向的方法将在.NET Thread Pool中

System.Windows.Forms.Timer与System.Timers.Timer的区别

.NET Framework里面提供了三种Timer: System.Windows.Forms.Timer System.Timers.Timer System.Threading.Timer VS.Net 2005默认只有一个Timer控件,但那是System.Forms.Timer控件.如果要使用System.Timers.Timer的控件,需要在工具箱上单击右键,手动添加. 添加的步骤:工具箱单击右键->Add Item->找到命名空间是System.Timers.Timer的控件,将

线程-Threading.Timer回调方法不会执行

问题描述 Threading.Timer回调方法不会执行 申明了局部变量timer private System.Threading.Timer timer; timer = new System.Threading.Timer(new TimerCallback(madeThreads), null, 0, 200); 回调方法madeThreads没有执行,有没有人碰到过 我是希望200毫秒执行一次回调方法,如果申请局部变量 private ManualResetEvent eventTim

c#Sytem.Threading.Timer线程TimerCallBack委托中方法涉及访问ui成员用考虑跨线程安全问题吗

问题描述 publicpartialclassScreen1{privateSystem.Threading.Timert1;voidScreen1_Opened(System.Objectsender,System.EventArgse){t1=newSystem.Threading.Timer(newTimerCallback(countTimer),null,0,1000);//定时器线程}voidcountTimer(objectob){this.Text1.Text="hello&qu

WinForm LED循环显示信息,使用定时器Threading.Timer

原文:WinForm LED循环显示信息,使用定时器Threading.Timer 这里用一个示例来演示timer如何使用.示例:LED屏幕显示描述:这个示例其实很简单,LED屏幕上显示3个信息:        1:排队叫号         2:催缴费         3:等待列表.因为LED屏幕大小的关系,列表需要分页显示.         正常情况下,这3个信息都需要从服务器上去获得,这里的示例只做简单的模拟,         界面很简单,如图,这里我就不美化了.           Tim

system.timers.timer执行问题。

问题描述 我的代码如下.我只设置一个timer1数组,但执行出来却有两个结果.执行结果为[0]+当前时间,[1]+当前时间,我希望的结果为[0]+当前时间就可以了,后面[1]+当前时间是怎么来的?privatevoidstart_Click(objectsender,EventArgse){StartProcc();}///<summary>///启动程序///</summary>privatevoidStartProcc(){ArrayListurl=newArrayList()

asp.net中System.Timers.Timer的使用方法_javascript技巧

我们经常会在网站中加一些定时执行的任务,比如生成静态页.执行邮件发送等. 可以通过在Global.asax中这样设置来实现.   复制代码 代码如下: void Application_Start(object sender, EventArgs e)     {                // 在应用程序启动时运行的代码        System.Timers.Timer MT = new System.Timers.Timer();      MT.Enabled = true;