使用singleton来封装计时器

本文关键字:计时器 封装 singleton 使用 | 更新日期: 2023-09-27 17:53:43

我有一个初始化threading.timer的类。我需要确保它将只是一个实例的计时器在所有的网站。我想我应该用singleton,对吗?问题是,我该怎么做?我从来没有实现过Singleton。这是我的代码,所以你可以理解我的意思。

public class start
{
    public start()
    {
        var timer = new Timer(CallBack, null, 0, 60000);
    }
    private void CallBack(object obj)
    {
       //Code
    }
}
所以,这个想法是,当我初始化类Start时,总是使用一些定时器,而不是实例化一个新的。由于

使用singleton来封装计时器

通常,您会有一个类的私有静态实例和一个静态getter。将构造函数也设置为私有。在getter中,检查私有实例是否已经创建。如果不是,创建并返回它,如果是,只返回实例。

public class MySingleton {
    private static MySingleton instance_ = null;
    private Timer timer_;

    public static GetInstance(){
        if (instance_ == null) instance_ = new MySingleton();
        return instance_;
    }
    private MySingleton(){
         timer_ = new Timer(Callback, ...);
    }
}