在LaVIEW中分享很多實用功能和技巧的高手Darren's在他的2006專欄中介紹了Defer Panel Updates,這個Property可以延遲UI人機的更新,不須重複呼叫UI處理的Thread(LabVIEW中只會使用一個UI Thread處理畫面更新),減少程式整體的時間,提升了程式的效能。這個適合用在需要作人機介面上元件大量更新、Image大量翻新狀態(Overlapping)、許多大表格(Listbox)...等等的人機介面重度使用者。

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

當我們需要做數值1~4的數值變化,並在Front Panel上面做更新;可以想像,如下圖,當數值1~4需要被畫面更新時,處理的程序會是,數值1->UI更新->數值2->UI更新....數值4->UI更新

但是如果使用更有效率的方法,只需做一次的UI更新,這樣也是能讓數值1~4能夠被做到UI上的更新。

而這個原理正是Defer Panel Updates所應用到的,Defer Panel Updates為True時,並不會處理畫面的更新,直到Defer Panel Updates數值直轉為False時。

藉由這樣統一的UI更新,可以降低電腦的處理程序、提升程式的效能;如果應用面上有大量的畫面更新、例如一次更新一整個大Table、更新許多照片的overlap...就非常建議使用Defer Panel Updates

另外Darren也提到,因為使用Defer Panel Updates時畫面不會更新,會讓使用者產生點腦是不是"當機"的錯覺;這時候可以搭配使用Busy、Set Busy,鎖定使用者的滑鼠功能,並提示使用者目前電腦為忙碌狀態。想了解Set Busy可以參考:LabVIEW_防止(禁止)使用者動作_游標滑鼠忙碌不能動作(Cursor to busy)

參考資料:https://forums.ni.com/t5/LabVIEW/Darren-s-Weekly-Nugget-05-22-2006/m-p/368713

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

arrow
arrow

    安伯伯 發表在 痞客邦 留言(0) 人氣()