我必须有一个 db 条目,其中给出了间隔,
假设 1 个计时器 tm_5 将每 5 分钟检查一次条目,而计时器 tm_10 将检查
每10分钟后的条目,
问题是它只检查 tm_5 的条目而不是 tm_10 的条目。
我正在使用 C#.net 2005 和 MS sql server 2005。
您应该在 UI 线程中更改标签的文本,以便此代码可以正常工作。请参阅 Control.Invoke 和 Control.InvokeRequired 以获得帮助。
试试这个(将 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 并阅读并理解它的含义)。