1. 程式人生 > >關於C#執行緒中使用定時器timer無效

關於C#執行緒中使用定時器timer無效

線上程中,開啟定時器 timer.Start()時候,無法進入timer_Tick()事件。

-------------------------------------------------------------------

解決方案:

this.Invoke(new MethodInvoker(delegate
                        {
                            timer.Start();
                        }));

Invoke方法需要傳入一個委this.Invoke(new MethodInvoker(delegate { 控制元件; }));

其中MethodInvoker是.net類庫裡定義的表示一個委託,該委託可執行託管程式碼中宣告為 void 且不接受任何引數的任何方法。在對控制元件的 Invoke 方法進行呼叫時或需要一個簡單委託又不想自己定義時可以使用該委託(摘自MSDN)

delegate { 控制元件; },表示傳入一個引數的委託。