我在C#中有一个1秒的计时器,其中有一个while序列.我的问题是,如果while序列在1秒之前没有完成,计时器是否会打勾,并从头开始重新启动?
代码的一部分在下面,它的作用是循环选定的对象并改变一些东西.因此,如果选择了很多对象并且我需要超过1秒来更改它们,它们都会被更改吗?
PS我真的希望循环被打破; 只会错误地选择大量的物体,但我只是想确保我避免这种可能性.:)
private void timer1_Tick(object sender, EventArgs e)
{
TSM.ModelObjectEnumerator myEnum = null;
myEnum = new TSM.UI.ModelObjectSelector().GetSelectedObjects();
while (myEnum.MoveNext())
{
if (myEnum.Current != null)
{....}
}
}
Run Code Online (Sandbox Code Playgroud)
是的,计时器滴答可以同时发生.这意味着您的计时器必须是线程安全的.
除了 UI计时器类(WinForms/WPF).他们的tick函数在UI线程上运行.有了DoEvents你可以导致重入,即使是另一个避免的理由DoEvents.
| 归档时间: |
|
| 查看次数: |
1105 次 |
| 最近记录: |