labview中怎么停止事件中的while循环,停止后还可以继续出发该事件while里面是tcp通信的接收数据循环编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了labview中怎么停止事件中的while循环,停止后还可以继续出发该事件while里面是tcp通信的接收数据循环编程相关的知识,希望对你有一定的参考价值。
我的编程部分如下,服务端一直侦听等待,我这个程序没有用,停止不了,望高手指点迷津,谢谢
上面那个是客户端截图,下面是服务端
http://www.gsdzone.net/index.php/Home/Index/Index/index/cat_id/1843881389/t/3/did/1691
http://www.gsdzone.net/index.php/Home/Index/Index/index/cat_id/1843881389/t/3/did/1679
如果程序里面有事件结构和While循环,可以考虑状态机结构或者基于队列的生产消费者结构。追问
那请问,能不能解决事件结构和通信一起的编程,我把while循环放到事件结构的外面运行时事件结构就没有用了,一直钻在while循环里,按下while循环里的停止按钮都退步出来,这要怎么解决?
事件结构的Timeout功能用于上面的编程能跳出while循环吗?跳出来了以后还可以触发其他事件的运行吗?具体怎么编程啊?我对于超时功能不了解?能帮忙求解下吗?求截图,大神,非常感谢
追答如果你的菜单刷新只需要点击一次刷新一次,那不用在事件分支里面再放一个循环,去掉循环就可以了。并且事件结构一般用法是在外面配合使用循环结构。如果你看了之前给你的两个链接中关于事件结构的用法说明,应该很快就可以理解了。
参考技术A 我看到的写labview经验类的文字都是不把循环放事件结构里的。你“服务端”的内容可以放进一个条件结构,然后用你的“菜单刷新”作为条件,为T时运行,这时候你的stop也可以用得上了,然后“服务端”结束的时候把“菜单刷新”也置F。 参考技术B 楼上正解,状态机里面是不可以加循环的。
JavaScript 中的反向 while 循环如何知道何时停止?
【中文标题】JavaScript 中的反向 while 循环如何知道何时停止?【英文标题】:How does a reverse while loop know when to stop in JavaScript? 【发布时间】:2012-03-15 09:13:28 【问题描述】:在 JavaScript 中,我最近发现了如何反向 while 循环更快。
我见过他们这样的形式:
var i = someArray.length;
while (i--)
console.log(someArray[i]);
我对此进行了测试,一旦它通过整个阵列就停止了。
一旦完成数组,它如何知道何时停止?
【问题讨论】:
一个article,以防你想知道什么是“真实性”。 @OnesimusUnbound 是的,这篇文章很有帮助,谢谢! 【参考方案1】:while 循环每次循环都会计算括号内的表达式。当该表达式达到错误值时,循环将停止。
错误值的示例是:
false
0
undefined
NaN
null
""
在这种情况下,i
的值将在每次循环中递减,当它达到0
的值时,循环将停止。因为它是一个后递减运算符,所以在递减之前检查表达式的值。这意味着内部循环将看到从 someArray.length - 1
到 0
(含)的 i
的值,它们是该数组的所有索引。
您的代码示例:
var i = someArray.length;
while (i--)
console.log(someArray[i]);
创建与此相同的输出:
for (var i = someArray.length - 1; i >= 0; i--)
console.log(someArray[i]);
【讨论】:
这些例子都是:)【参考方案2】:当i--
达到 0 时,循环停止。
一旦while ( ... )
中的表达式计算为假,循环就会停止。
由于i
是一个正数(长度),并且在递减,它会在某个点达到零。
在布尔上下文中,零转换为false
,确保循环在某个点停止。
因为i--
返回的值是先减量,所以当循环停止时i
实际上是-1
。
【讨论】:
说“0 等于假”不太正确,最好说 0 的计算结果为假。 严格来说,零在布尔上下文中不存在。发生的事情是abstractToBoolean
function 将0
转换为false
。
在 JS 布尔上下文(“世界”)中,我们只有两个值:true
和 false
(这是我对“上下文”一词的解释)。我错过了什么吗?
看起来我们在谈论不同的波长。如果在布尔上下文中只存在 true
和 false
而没有其他内容(如您所说),那么在该上下文中引入零是没有意义的,不是吗?
@pimvdb 现在,我看到了您的问题。我的意思是:“零,在布尔上下文中使用,转换为假。” (方法(“零”)=false
,因此我的“零等于布尔上下文中的假”语句)。【参考方案3】:
每次循环运行时,都会检查i--
。 --
告诉 Javascript 将 i
减 1。最终,i
将下降到 0,相当于 false
。此时,循环停止。
【讨论】:
【参考方案4】:在黑暗中试探是因为 0 在布尔表达式中的计算结果为 false。 0 == true 返回 false 0 == false 返回 true
请注意,如果您从 -1 开始,它将无限循环。
【讨论】:
【参考方案5】:while 循环在达到虚假值时停止计算。 0 是一个假值,恰好是数组的第一个索引。 之所以 for 循环在 i 为 0 时仍然循环是因为当你做一个递减表达式时,返回值实际上是操作前变量的值。
let i = 10;
let j = i--
console.log(i) // 9
console.log(j) // 10
因此,当您的 while 循环变为 1,然后 for 循环中的条件递减“--” i 变量时,返回值为 1,这是真实的,但实际上,当您的其余循环访问 i 的值时它是 0。
【讨论】:
以上是关于labview中怎么停止事件中的while循环,停止后还可以继续出发该事件while里面是tcp通信的接收数据循环编程的主要内容,如果未能解决你的问题,请参考以下文章