2011-12-11 141 views
8

使用下面的代碼,定時器只觸發一次。我錯過了什麼?System.Threading.Timer只會觸發一次

public static List<string> Test = new List<string> { "TEST1", "TEST2" }; 

public static void Start() 
{ 
    var t = new System.Threading.Timer(o => 
    { 
     foreach (var item in Test) 
     { 
      Console.WriteLine("Say hello!"); 
     } 
    }, null, 0, 1250); 
} 

回答

20

的定時器由GC再次觸發之前收集。
您需要通過將其存儲在一個字段中使其保持活動狀態。