2010-03-15 17 views
0

我不得不在其中的間隔給出一個分貝條目不同的時間間隔,兩個以上的定時器與C#

假設1個計時器每隔5分鐘&定時器後tm_5將檢查條目tm_10將檢查

每10分鐘後的條目,

問題是,它只檢查tm_5的條目而不是tm_10。

我使用C#.NET 2005 & MS SQL Server 2005中

+3

你能提供代碼嗎?你是如何做到這一點的? – 2010-03-15 09:02:51

+1

除非您提供更多信息,否則我們無法爲您提供幫助...... – Calanus 2010-03-15 09:02:52

+0

什麼樣的定時器以及它們如何處理? – 2010-03-15 10:12:35

回答

0

試試這個(添加label1和label2,建立名爲TimerTester)。

public partial class TimerTester : Form 
{ 
    public TimerTester() 
    { 
     InitializeComponent(); 
    } 
    Timer _t1; 
    Timer _t2; 
    int _it1 = 0, _it2 = 0; 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     _t1 = new Timer() { Interval = 1000 };    
     _t1.Tick += new EventHandler(_t1_Tick); 
     _t2 = new Timer() { Interval = 2000 }; 
     _t2.Tick += new EventHandler(_t2_Tick); 
     _t1.Start(); _t2.Start(); 
    } 
    void _t1_Tick(object sender, EventArgs e) 
    { 
     label1.Text = "t1: " + (_it1++).ToString(); 
    } 
    void _t2_Tick(object sender, EventArgs e) 
    { 
     label2.Text = "t2: " + (_it2++).ToString(); 
    }   
} 

另外請注意,您應該使用Forms.Timer而不是Threads.Timer(或使用InvokeRequired和閱讀&明白它暗示)。

0

您應該更改UI線程中的標籤文本,以便此代碼可以正常工作。請參閱Control.Invoke和Control.InvokeRequired獲取幫助。

+0

哪個標籤? _________ – 2010-03-15 10:02:29

+0

我相信UI定時器控件在UI線程上運行。您的關注僅適用於單獨的線程。 UI定時器在UI線程上引發事件。 – BlueMonkMN 2010-03-15 11:04:32

+0

@BlueMonkMN:我沒有看到他提到UI定時器是他的問題,上面的代碼也沒有提到。 – Ikaso 2010-03-15 11:23:58