如何防止 UI 在執行長 for 迴圈操作時看起來掛起我製作了 UI,讓使用者選擇要包含在 Cpk 計算中的製程、溫度和電壓,腳本將迭代製程、溫度和電壓的每個組合。 我注意到 UI 在執行操作時掛起。 有辦法避免這種情況嗎? 我認為類似於 vb6 中的 DoEvents 或更好的函數,後台進程工作者?
品質和工藝工程回覆:如何防止 UI 在執行長時間循環操作時看起來掛起或修改程式碼,例如進度條滿足您的需求。 @大衛_伯納姆身份等級看起來也不錯!
回覆:如何防止 UI 在執行長時間循環操作時看起來掛起看來我需要的是等待!
我會看一下@大衛接下來的建議。
謝謝!回覆:如何防止 UI 在執行長時間循環操作時看起來掛起我的代碼在一分鐘內運行。 我擔心的是,在這個過程中,GUI(用 JSL 製作)看起來會停止回應。 我認為這是因為腳本和 GUI 都在同一個線程中運行(我可能是錯的)。 在 VB6 中,在 for 迴圈中新增 DoEvents 命令可能是快速解決方案,它允許 UI 更新其元素並顯示回應,但總操作會花費更長的時間。
我希望將該腳本整合到 JMP 本身中,並使其成為一個插件,以便其他用戶只需安裝它並重複使用它。 如果我走 VB6 路徑,我寧願完全在 VB6 中完成,而不是使用 VB6 產生 JSL 腳本然後執行它。 感謝您提供不同的方法,我感謝每一個回饋。 
回覆:如何防止 UI 在執行長時間循環操作時看起來掛起如果您正在執行許多耗時的離散任務,您可以使用此狀態小工具:
活動狀態類別
它將向用戶提供進度狀態並強制螢幕更新。
回覆:如何防止 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 在執行長時間循環操作時看起來掛起@TheRealYeti ,
我將從另一個方向攻擊你的問題,你的腳本可能效率低下。 我見過需要幾個小時才能運行的腳本,重寫後只需一兩分鐘即可運行。 如果沒有更多細節,很難評估這一點。
鑑於您了解 vb6,您可以獲得使用者輸入,並且您的腳本可以產生 JSL 腳本來完成工作,但透過使用 DoEvents 的 VB6 來運行它。我不知道這個函數,也不是 VB 專家。
JMP 文件「自動化參考」向您介紹了許多向 VB 公開的 JMP 函式庫函數。
若要建立 JMP 會話並使其可見,請將以下程式碼新增至您的 VB
腳本。
將 MyJMP 調暗為 JMP.Application
將 JMPDoc 變暗為 JMP.Document
設定 MyJMP = CreateObject("JMP.Application")
MyJMP.Visible = True
JMP 函式庫函數 Run JSL,
運行JSL文件
不確定這是否有幫助。