none
C# 中关于精确定时触发的问题 RRS feed

  • 问题

  • 现在手上有一个项目 因为各种各样的原因,领导让我做一项功能就是需要 每隔10MS 使用TCP协议 向外发一段数据。并且执行这个操作需要发30000-50000次,经过这么多次发送后需要误差不超过5秒。我想问一下这个功能是否无法完成?如果可以完成请大佬指点一下
    2018年1月4日 17:01

全部回复

  • 可以完成,C#中的定时器组件是毫秒级别的,精度没有问题,我认为主要的难点在10毫秒将数据从TCP发送出去,这里要构建TCP连接,发送数据,能否在10毫秒内完成,同时需要用异步的方式发送数据才不致于阻塞主线程。

    对方接收到数据,能否判断那一块内容是先发送的,那一段是后发送的。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年1月5日 0:42
  • Timer组件我看了一下网上貌似并不能做到10MS精度啊
    2018年1月5日 2:44
  • Hi whiskets,

    我建议你可以把帖子的类型,改成讨论贴,这样可以让更多的人看到它,然后参与讨论。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年1月8日 7:27
    版主
  • 在 Windows XP 以後的版本, default timer resolution 約為 15.625 ms。

    若要修改這個解析度,需要呼叫 Win32 API

    可以參考以下文件:

    Microsecond Resolution Time Services for Windows


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2018年1月8日 8:52