當運用 Event 架構時,為什麼我的使用者介面被鎖定?



主要軟體:
主要軟體版本: 6.1
主要軟體修正版本: N/A
次要軟體: N/A

問題:
當使用 Event 架構時,我的人機介面被鎖定了;所有的控制元都無法輸入,同時波形圖(grpah)與顯示元(indicator)也似乎停止更新。為什麼會這樣?


解答:
當一個人機介面的物件所對應的事件(event)發生,且這個事件已被紀錄到 Event 架構時, LabVIEW 預設上會把這個人機介面的物件鎖定直到這個事件被完成為止。若完成事件的時間很長(如 event 架構內含 while 迴圈),那麼人機介面的物件就會無法動作;這實際上只是這個事件還沒有執行完畢而已。按照以下步驟,可以針對個別的 Event 設定或取消這個預設的設定。




這樣就可以解決人機介面被鎖定的問題。

然而當您的程式有消耗大量時間的動作時,這問題更好的解決方式是使用生產者/消費者架構(Producer/Consumer architechure)來建立您的程式。這點請參考以下連結Application Design Patterns: Producer/Consumer

相關連結:
Developer Zone Tutorial: Application Design Patterns: Producer/Consumer
Developer Zone Tutorial: Advanced Event Handling with LabVIEW 7 Express
Developer Zone Tutorial: Event-Driven Programming in LabVIEW
KnowledgeBase 2TUCG6HM: Why Is "Lock Panel Until Handler Completes" Grayed Out For Certain Cases In An Event Structure?
KnowledgeBase 2E3EMFO9: Event Structure Does Not Capture the 'Value Change' Event When Values are Programmatically Changed
Product Reference: LabVIEW Help: Event Structure
Product Manuals: LabVIEW User Manual
Product Reference: LabVIEW Upgrade Notes

附加檔案:


Lockup Examples.zip - Lockup Examples.zipATT6HOJ8 - ATT6HOJ8
nolock.JPG - nolock.JPG



報告日期: 05/28/2002
最後更新: 01/05/2012
文件偏號: 2LRE8H2G