C# 防止对象被垃圾回收

C# 防止对象被垃圾回收,c#,garbage-collection,C#,Garbage Collection,在控制台应用程序中,我有以下代码: private static System.Timers.Timer TaskTimer; static void Main(string[] args) { //run each minute Func<double> getNextMinute = () => { return (DateTime.Now.RoundUp(TimeSpan.FromMinutes(1)) - Date

在控制台应用程序中,我有以下代码:

    private static System.Timers.Timer TaskTimer;
    static void Main(string[] args)
    {
        //run each minute
        Func<double> getNextMinute = () => { return (DateTime.Now.RoundUp(TimeSpan.FromMinutes(1)) - DateTime.Now).TotalMilliseconds; };
        TaskTimer = new System.Timers.Timer(getNextMinute());
        TaskTimer.AutoReset = false;
        TaskTimer.Elapsed += (sender, e) =>
        {
            TaskTimer.Interval = getNextMinute();
            TaskTimerCallback();
        };
        TaskTimer.Start();

        bool exit = false;
        while (!exit)
        {
            exit = (command == "exit");
        }
    }
private static System.Timers.Timer TaskTimer;
静态void Main(字符串[]参数)
{
//每分钟跑一次
Func getNextMinute=()=>{return(DateTime.Now.RoundUp(TimeSpan.frommins(1))-DateTime.Now.totalmillizes;};
TaskTimer=newsystem.Timers.Timer(getNextMinute());
TaskTimer.AutoReset=false;
TaskTimer.Appead+=(发送方,e)=>
{
TaskTimer.Interval=getNextMinute();
TaskTimerCallback();
};
TaskTimer.Start();
bool exit=false;
当(!退出)
{
退出=(命令=“退出”);
}
}
如果我检查计时器GC生成,它总是0


TaskTimerObject是否有可能在滴答声之前被垃圾收集?

否,GC不会收集TaskTimerObject


TaskTimer字段是一个指向TaskTimerObject的字段。

是的,计时器有可能在滴答声之前被收集到垃圾。您可以使用
GC.KeepAlive
我认为不是,因为它是
静态的