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个定时器,这个参数就可以用来给每个定时器编号。
System.Threading.Timer 是一个使用回调方法的计时器,而且由线程池线程服务,简单且对资源要求不高。 只要在使用 Timer,就必须保留对它的引用。对于任何托管对象,如果没有对 Timer 的引用,计时器会被垃圾回收。即使 Timer 仍处在活动状态,也会被回收。当不再需要计时器时,请使用 Dispose 方法释放计时器持有的资源。 使用 TimerCall......
答案就在这里:System.Threading.Timer
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
定时器的id一个包含回调方法要使用的信息的对象,或者为空引用
https://msdn.microsoft.com/zh-cn/library/2x96zfy7.aspx
一个包含回调方法要使用的信息的对象,或者为 null。
可以为null,说的很清楚。
第二个参数只是传一个初始的状态,和引用不引用无关啊。比如说,你创建10个定时器,这个参数就可以用来给每个定时器编号。