.NET秒表类限制

.NET秒表类限制,第1张

概述.NET秒表类限制

这可能不是一个完全不是.NET相关的问题。 我正在编写一个.NET应用程序来控制一些小工具。 我定期向小工具发送命令(比如说每500毫秒)。 只要我发送命令,我启动一个计时器。 (.NET秒表类)

如果小工具在10毫秒内没有回应,我再次发送命令。 如果确实响应,我会继续通过发送更多命令并处理响应来监视小工具状态。

我有两个或三个秒表计时器并行运行,为这个小工具做其他事情。

现在,我想监视和控制数千个这样的小工具(可能高达5000)。 如果我为一个小工具创build一个对象,我将查看10000到15000个秒表对象并行运行。 我不确定秒表是如何工作的,但我认为他们依靠硬件计时器或某些类似的东西来logging时间。

.NET Thread.Sleep是否受到DST(或系统时间)更改的影响?

2应用程序最重要的问题

为什么Process.Start会意外返回false

.NET 4.0 – AccessViolationException和WndProc

计划windows任务与C#编程

我的问题是,windows可以同时处理如此大量的秒表吗?

什么时候应该调用MessageQueue.EndReceive()?

蓝牙服务器应用程序接受移动设备的连接

windows 7的NLSsorting更改

SetfilePointerEx API来读取MFT

User32 API自定义PostMessage进行自动化

我会建议重新考虑这个设计。 首先,秒表只是做它所说的 – 它就像一个秒表。 如果你想以特定的时间间隔触发一个事件,你会想看看不同的Timer类。

话虽如此,我会建议在整个小工具中分享你的计时器。 你会发现一切都表现得更好,如果你创建的单个调度程序使用更少的定时器,并且调度程序管理这些小配件,那么编写和理解可能会更简单。

秒表不过是一个保存windows API调用queryPerformanceCounter()的结果的变量,它在“运行”时没有开销。 停止再次调用queryPerformanceCounter() ,所以性能应该没问题。 也就是说,我同意Reed copsey的观点,你需要重新思考你的设计。 有了这么多的小工具,我会开始考虑设备驱动程序。

我想这个问题应该是,如果你能处理一些很多的定时器, 你会浪费很多时间只是读数以千计的定时器,并没有功能。

我没有意识到Stopwatch类的实现,但我可以想象,他们只是在开始和停止时读取计时器的值。 所以一个Stopwatch实例可能需要最没有资源。

但是试试吧 在循环中生成一些thousend实例的数组,启动它们,看看会发生什么。

考虑全局队列,它保存小工具的响应,以及一个或几个线程查询队列,并在需要的时候不满足消息。 它会表现更好。

使用一个时间源以指定的时间间隔安排事件

秒表类非常简单。 这不是一直“运行”的东西。 当你告诉它开始的时候,它会查看系统时间,当你告诉它暂停,停止,重置等等,每次你只是看着系统时间。 询问ElapsedMilliseconds相当于说(Processor.CurrentTicks – StartTicks)/ TicksPerMillisecond。 这很简单,真的。 系统可以处理大量的这些。

我不评论这是否是你的问题的正确设计,只是回答你的问题:系统可以处理数以千计的秒表没有问题。

总结

以上是内存溢出为你收集整理的.NET秒表类限制全部内容,希望文章能够帮你解决.NET秒表类限制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1288525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存