【发布时间】:2012-10-08 07:21:52
【问题描述】:
我有一个名为SendTimer 的计时器,时间间隔为 30 秒。
protected void SendTimer_Tick(object sender, eventArgs e)
{
SendTimer.Enabled = false;
TransferMoney();
System.Threading.Thread.Sleep(15000);
GenerateTransactions();
SendTimer.Enabled = true;
}
我希望一个线程同时正确调用滴答事件。不是同时通过 2 个线程。但正如我在我的日志中看到的那样,它似乎是由一个线程调用的,而另一个线程正在运行。任何想法?因为我分别禁用和启用它。
【问题讨论】:
-
你用的是什么类型的定时器?
-
那么,您有 2 个线程必须使用该计时器,并且您不希望它们同时运行?那么为什么不在计时器中使用“锁定”呢?
-
tick事件的代码将在
Windows.Forms.Timer的GUI线程上执行。你确定你在使用这个计时器吗?
标签: c# winforms multithreading timer thread-safety