为什么Vote();
函数不能运行此计时器?
消息框一个有用但投票一个没有
public void Timer()
{
var timespan = new TimeSpan(0, 0, 20);
var timer = new System.Timers.Timer(timespan.TotalMilliseconds);
timer.Elapsed += (o, e) =>
{
MessageBox.Show("Worked");
Vote();
};
timer.Start();
}
在此代码中投票超过此功能,谢谢,Oliver。
答案 0 :(得分:1)
Timer.Elapsed
事件会抑制所有异常,导致您看不到任何错误。在Elapsed
事件中添加您自己的错误处理,以查看失败的原因。
来自MSDN:
Timer组件捕获并抑制事件处理程序为Elapsed事件抛出的所有异常。在将来的.NET Framework版本中,此行为可能会发生更改。
答案 1 :(得分:0)
经过的计时器代码可以在单独的线程上运行。如果是这样,您可能会发生交叉线程违规。没有看到投票代码就无法确定。如果你想确保lambda正在运行,那么写一个消息就会比使用winform对话框更具破坏性。