while(true)和时钟timer有什么不同?

代码铺到天琴座 2025-08-08 15:57:16

要刷新PLC里的数据,被人告之用while(true),这是个死循环,会一遍又一遍地将程序从头到尾执行。

后来发现timer时钟,也可以每隔一段时间就循环执行它里面的程序,这样的话它也可以刷新PLC里的数据。

那么二者有什么不同?

...全文
101 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 版主 08-12
  • 打赏
  • 举报
回复 1

实现的功能 其实都一样.. 比如 间隔3秒 从PLC读取数据 显示到winform上.

但是实现本质上 稍微有点区别.

如果你不使用线程 那么while+sleep 的时候会线程阻塞, 也就是UI看到的"卡死" 当然你肯定会新启动一个线程. 这样就无所谓了.

而timer不会阻塞线程,间隔达到后会触发事件 回调在线程池中执行.(效率比较高)

就算你while+线程 那么while会独占当前线程 不会被释放.

所以还是timer比较好

MichaelGLX 08-11
  • 打赏
  • 举报
回复

区别在于 自己做饭和点外卖

rrokoko 08-09
  • 打赏
  • 举报
回复

真用起来其实也没什么不同,while也可以设置间隔

111,107

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧