【发布时间】:2014-06-27 02:57:52
【问题描述】:
我在 Visual Studio 2008 中使用 .net compact framework 3.5。
我创建了一个计时器滴答事件来执行一项工作。我只想调用一次计时器,之后我需要禁用计时器。请参阅我的以下代码
int counter = 0;
var timer = new Timer { Enabled = true, Interval = 10000 };
timer.Tick += delegate
{
Cleanup();
};
counter++;
if (counter >= 1)
{
timer.Enabled = false;
}
我在没有任何条件的情况下尝试使用timer.Enabled = false;,发生的情况是Cleanup() 函数没有在滴答事件中调用。所以从谷歌我得到了另一种使用计数器的解决方案。我也面临着计数器同样的问题,Cleanup() 没有调用。
如果我没有禁用计时器,则该函数每 10 秒调用一次。我只需要调用一次 Cleanup() 函数,它在 timer.tick 内。需要帮助来解决这个问题。
谢谢
【问题讨论】:
-
计数器++;应该包含在委托中,否则会立即调用。
-
计数器++;应该在刻度线中
-
看看这个解决方案,您可以将它用于您的案例:stackoverflow.com/questions/16814232/…
-
您能否指定您使用的是哪个
Timer类。显然不是System.Threading.Timer,可能是System.Windows.Forms.Timer 基于Tick方法... -
@AlexeiLevenkov 这不是 System.Threading.Timer。
标签: c# .net visual-studio-2010 visual-studio c#-4.0