111,107
社区成员




要刷新PLC里的数据,被人告之用while(true),这是个死循环,会一遍又一遍地将程序从头到尾执行。
后来发现timer时钟,也可以每隔一段时间就循环执行它里面的程序,这样的话它也可以刷新PLC里的数据。
那么二者有什么不同?
实现的功能 其实都一样.. 比如 间隔3秒 从PLC读取数据 显示到winform上.
但是实现本质上 稍微有点区别.
如果你不使用线程 那么while+sleep 的时候会线程阻塞, 也就是UI看到的"卡死" 当然你肯定会新启动一个线程. 这样就无所谓了.
而timer不会阻塞线程,间隔达到后会触发事件 回调在线程池中执行.(效率比较高)
就算你while+线程 那么while会独占当前线程 不会被释放.
所以还是timer比较好
区别在于 自己做饭和点外卖
真用起来其实也没什么不同,while也可以设置间隔