vb.net中怎样才能用timer控件控制嵌套for循环的第一个循环

时间:2021-04-15 18:05:32
比如说为了得到textbox.text1与textbox.text2之间的全部素数,我用了一个嵌套的for循环,但是如何用timer控件让他每间隔50毫秒处理一个数
窗口包含一个定时器控件,其间隔时间为50毫秒。编写事件代码,每隔50毫秒计算一个数是不是素数,并通过进度条显示当前进度。若是素数则在文本框中显示该数,否则等待50毫秒计算下一个数,直到指定范围的数全部计算完,最后显示提示信息

4 个解决方案

#1


[ vb.net中怎样才能用timer控件控制嵌套for循环的第一个循环vb.net中怎样才能用timer控件控制嵌套for循环的第一个循环, 上图是我写的代码,哪里有问题, 随便说吧:

变量 i 定义到事件处理方法里边就行了,没有必要定义到 Form1 这一级。这个变量的值应该是只在for循环极其后边一条语句有意义去使用,因此方法结束就销毁了,放在方法外边反而是多余的、容易捣乱思路的。

另外 zhongjianshu 跟 TextBox2.Text 根本不是同一个类型,不能这样比较。vb.net 对于类型的控制不太严谨,容易产生错误的计算结果。你自己要注意类型匹配,例如要把 TextBox2.Text 转换(可能是 CType 之类的表达式吧)为整数再与 zhongjianshu 变量比较。

最后一个 if 条件表达式中的 = 如果使用 >= 更安全。因为有时候输入的 TextBox2.Text 中的数值比你的 zhongjianshu 变量初始值还小,会让 = 号条件的 if 判断永远不成立。改为 >= 就能更安全地判断。

当没有达到结束条件时,你的 zhongjianshu 变量应该 +1。你的代码估计是在同一个 zhongjianshu 的值上死循环。

, 我明白了,谢谢你了。]

#1


[ vb.net中怎样才能用timer控件控制嵌套for循环的第一个循环vb.net中怎样才能用timer控件控制嵌套for循环的第一个循环, 上图是我写的代码,哪里有问题, 随便说吧:

变量 i 定义到事件处理方法里边就行了,没有必要定义到 Form1 这一级。这个变量的值应该是只在for循环极其后边一条语句有意义去使用,因此方法结束就销毁了,放在方法外边反而是多余的、容易捣乱思路的。

另外 zhongjianshu 跟 TextBox2.Text 根本不是同一个类型,不能这样比较。vb.net 对于类型的控制不太严谨,容易产生错误的计算结果。你自己要注意类型匹配,例如要把 TextBox2.Text 转换(可能是 CType 之类的表达式吧)为整数再与 zhongjianshu 变量比较。

最后一个 if 条件表达式中的 = 如果使用 >= 更安全。因为有时候输入的 TextBox2.Text 中的数值比你的 zhongjianshu 变量初始值还小,会让 = 号条件的 if 判断永远不成立。改为 >= 就能更安全地判断。

当没有达到结束条件时,你的 zhongjianshu 变量应该 +1。你的代码估计是在同一个 zhongjianshu 的值上死循环。

, 我明白了,谢谢你了。]