C#-使用Thread.Sleep()使我的周期每秒运行数百次

用户名

我正在开发一个分析实时财务数据的应用程序。目前,我的主要计算周期具有以下设计:

long cycle_counter=0;
while (process_data)
{
  (analyse data, issue instruction - 5000 lines of straightforwasrd code with computations)
  cycle_counter++;
  Thread.Sleep(5);
}

当我在笔记本电脑(一个Core i5)处理器上运行该应用程序时,该循环每秒运行200-205次-达到了预期的效果(如果您不关心为什么它每秒运行200次以上)。

但是,当我在具有2个6核Xeon处理器和24 GB快速RAM并在3秒钟内加载Win7的“真实”工作站上部署该应用程序时,该应用程序每秒运行大约67次。

我的问题是:

  • 为什么会这样呢?

  • 在这种情况下,我如何影响每秒的运行次数?

  • 有没有更好的解决方案可以每秒运行200-1000次呢?我现在正在考虑仅删除Thread.Sleep()(在这里使用它的方式经常受到批评)。我拥有12个核心,因此在此周期内使用一个核心没有任何问题。但是这种解决方案有一些缺点吗?

谢谢您的想法。

瓦格纳·多斯·安霍斯(Wagner DosAnjos)

Windows不是实时操作系统(RTOS),因此您无法精确确定线程何时恢复。Thread.Sleep(5)真正的意思是“不迟于5毫秒唤醒我”。实际的睡眠时间由特定的硬件决定,并且主要由系统负载决定。您可以尝试system load通过更高优先级运行应用程序来解决此问题

顺便说一句,System.Threading.Timer是一种更好的方法(尽管上面的注释仍然适用)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#-使用Thread.Sleep()使我的周期每秒运行数百次

来自分类Dev

在Windows上执行数百次重复操作后,C ++屏幕捕获失败:内存泄漏?

来自分类Dev

在调用事件时使用Thread.Sleep,但不起作用吗?(C#)

来自分类Dev

使用C#运行VBScript

来自分类Dev

使用Thread.Sleep在c#中的循环中每次等待一秒钟

来自分类Dev

如何使用C#在没有thread.sleep的情况下增加延迟几秒钟

来自分类Dev

我的Python输出会重复自己的数百次

来自分类Dev

C# Windows 窗体 Thread.Sleep() 不起作用?

来自分类Dev

C#,foreach 循环和 thread.sleep 之外的变量

来自分类Dev

在我的程序中使用C / C ++ <Thread>吗?

来自分类Dev

C ++ 11使用std :: thread运行模板化类函数

来自分类Dev

C ++ 11使用std :: thread运行模板化类函数

来自分类Dev

c# - 如何使用任务在c#中并行运行n次调用相同的方法?

来自分类Dev

C#使用WebTestRequest运行并发请求

来自分类Dev

使用C#运行SQL Server查询

来自分类Dev

C#使用WebTestRequest运行并发请求

来自分类Dev

使用C#无法运行Perl脚本

来自分类Dev

在C#中使用运行的CMD命令

来自分类Dev

使用 C# 表单运行 .exe

来自分类常见问题

我正在使用哪个版本的C#

来自分类Dev

我应该使用静态方法(C#)

来自分类Dev

我应该使用静态方法(C#)

来自分类Dev

如何使用Timer而不是Thread.Sleep每秒工作

来自分类Dev

使用参数从C#在C ++上运行.exe

来自分类Dev

C#中的Thread.Sleep():它是否休眠了实例化对象的线程,或者我从中调用方法的线程?

来自分类Dev

C# Thread.Sleep(x) 或 while (DateTime.Now < dateStop)

来自分类Dev

c# Thread.sleep 睡眠当前线程还是主线程?

来自分类Dev

C#Thread.Sleep()

来自分类Dev

使用复杂/嵌套对象(C#)进行数据绑定

Related 相关文章

  1. 1

    C#-使用Thread.Sleep()使我的周期每秒运行数百次

  2. 2

    在Windows上执行数百次重复操作后,C ++屏幕捕获失败:内存泄漏?

  3. 3

    在调用事件时使用Thread.Sleep,但不起作用吗?(C#)

  4. 4

    使用C#运行VBScript

  5. 5

    使用Thread.Sleep在c#中的循环中每次等待一秒钟

  6. 6

    如何使用C#在没有thread.sleep的情况下增加延迟几秒钟

  7. 7

    我的Python输出会重复自己的数百次

  8. 8

    C# Windows 窗体 Thread.Sleep() 不起作用?

  9. 9

    C#,foreach 循环和 thread.sleep 之外的变量

  10. 10

    在我的程序中使用C / C ++ <Thread>吗?

  11. 11

    C ++ 11使用std :: thread运行模板化类函数

  12. 12

    C ++ 11使用std :: thread运行模板化类函数

  13. 13

    c# - 如何使用任务在c#中并行运行n次调用相同的方法?

  14. 14

    C#使用WebTestRequest运行并发请求

  15. 15

    使用C#运行SQL Server查询

  16. 16

    C#使用WebTestRequest运行并发请求

  17. 17

    使用C#无法运行Perl脚本

  18. 18

    在C#中使用运行的CMD命令

  19. 19

    使用 C# 表单运行 .exe

  20. 20

    我正在使用哪个版本的C#

  21. 21

    我应该使用静态方法(C#)

  22. 22

    我应该使用静态方法(C#)

  23. 23

    如何使用Timer而不是Thread.Sleep每秒工作

  24. 24

    使用参数从C#在C ++上运行.exe

  25. 25

    C#中的Thread.Sleep():它是否休眠了实例化对象的线程,或者我从中调用方法的线程?

  26. 26

    C# Thread.Sleep(x) 或 while (DateTime.Now < dateStop)

  27. 27

    c# Thread.sleep 睡眠当前线程还是主线程?

  28. 28

    C#Thread.Sleep()

  29. 29

    使用复杂/嵌套对象(C#)进行数据绑定

热门标签

归档