c# - 如何在1秒钟内调用函数200次

标签 c# wpf multithreading timer

这段代码在1秒钟内不会调用200次函数,第一次是167次调用,第二次是201次,但我没有得到200次。

public Thread thread;
public Timer timer;
int i = 0;

private void Button_Click(object sender, RoutedEventArgs e)
{
   timer = new Timer(Mess);
   timer.Change(10000, 10000);
   thread = new Thread(Calc);
   thread.Start();
}

private void Mess(object state)
{
   MessageBox.Show("Call in on second : " + (i / 10).ToString());
   i = 0;
}

private void Calc(object obj)
{
   while (true)
   {
      i++;
      Thread.Sleep(5);
   }
}

最佳答案

这是因为您的调度程序可以管理处理器中的不同线程。此过程并非一直在您的处理器中运行,因此可能会发生奇怪的行为。
使用线程的程序很少是确定性的(这就是为什么您第一次获得167而第二次获得201的原因)

关于c# - 如何在1秒钟内调用函数200次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22556358/

相关文章:

c# - 我应该始终完成 TaskCompletionSource 吗?

c# - WPF 验证取决于必填/非必填字段

java - 不可变但可刷新的集合?

C - exec 是否必须在多线程进程中立即跟随 fork?

c# - 获取依赖项的命名实例

c# - 将类的可空双属性序列化为 Xml 文本

c# - 第一次引发 Elapsed 事件时进行测试。有效还是无用?

c# - 我怎样才能成为更好的 WPF 开发人员?

wpf - 如何设置 RibbonSplitButton ItemTemplate 的样式

c# - WCF 调用一个函数而不等待它完成它的工作?