如何在长时间进行循环操作时阻止UI看起来像挂起我制作了一个UI,使用户可以选择要在Cpk的计算中包括哪个过程,温度和电压,脚本将遍历过程,温度和电压的每种组合。我注意到UI在执行操作时挂断了。有办法避免这种情况吗?我认为类似于vb6或更高版本中的DoEvents的功能,后台进程工作者?
脚本编写回复:长时间进行循环操作时,如何停止UI看起来像挂起 @TheRealYeti ,
我将从另一个方向攻击您的问题,您的脚本可能效率不高。我看过脚本要花几个小时才能运行,而重写则要在一两分钟后才能运行。没有更多细节,很难对此进行评估。
既然知道vb6,就可以获取用户输入,并且脚本可以生成JSL脚本来完成工作,但是可以通过使用DoEvents的VB6运行它。 我不知道该功能,也不是VB专家。
JMP文档“自动化参考”为您提供了VB公开的许多JMP库功能。
要创建一个JMP会话并使它可见,请将以下代码添加到您的VB中
脚本。
昏暗的MyJMP作为JMP.Application
将JMPDoc昏暗化为JMP.Document
设置MyJMP = CreateObject(“ JMP.Application”)
MyJMP.Visible =真
JMP库函数Run JSL
运行JSL 文件
不确定是否有帮助。
回复:长时间进行循环操作时,如何停止UI看起来像挂起如果在JSL中循环,则可以将调用添加到caption()来通知用户进度。
for (i = 1, i <= 1000000, i++,
a = i*2;
b = a^i;
if (mod(i, 1000) == 0,
caption("Processing ... " || char(i));
wait(0);
);
);
caption(remove);回复:长时间进行循环操作时,如何停止UI看起来像挂起如果要执行许多耗时的离散任务,则可以使用以下状态小部件:
活动状态类别
它将为用户提供进度状态并强制屏幕更新。
回复:长时间进行循环操作时,如何停止UI看起来像挂起我的代码在一分钟内即可运行。我担心的是,在此过程中,GUI(用JSL制造)看起来好像停止了响应。我认为这是因为脚本和GUI都在同一线程中运行(我可能错了)。在VB6中,在for循环内添加DoEvents命令可能是一种快速的解决方案,它允许UI更新其元素并显示为响应式,但总操作将花费更长的时间。
我希望将该脚本集成到JMP自身中并使其成为一个插件,以便其他用户可以直接安装并重复使用它。如果我沿着VB6路径走,我宁愿完全在VB6中完成它,而不是使用VB6生成JSL脚本然后执行它。感谢您提供不同的方法,我感谢每一个反馈。:)
回复:长时间进行循环操作时,如何停止UI看起来像挂起看来我需要等待!
我来看看 @大卫接下来的建议。
谢谢!回复:长时间进行循环操作时,如何停止UI看起来像挂起或修改类似的代码进度条满足您的需求。 @戴维·伯纳姆的状态等级也不错!