NI-VISA 函式相對於自身呼叫執行緒的動作,可區分為同步與非同步 2 種類型。如果以同步方式執行 NI-VISA,就會讓呼叫執行緒中的其他程式碼無法執行。這個選項可能適用於某些情況,例如傳輸大量資料,或確保資料能盡快自裝置擷取或抵達裝置。
在進行較低階的作業時,呼叫執行緒的鎖定時間會有所不同,端視於介面是同步或非同步。寫入作業的資料必須自應用開發環境 (ADE) 一路向下傳輸,直至電腦所提供的基礎實體資源。讀取作業的資料必須從裝置的實體資源傳輸至 ADE。2 種傳輸方式都需通過層層記憶體。
寫入作業會透過以下順序進行:
讀取作業則會以相反順序進行同一程序。
在同步作業中,呼叫執行緒不會於步驟 4 與 5 之間遭到鎖定。在非同步作業中,呼叫執行緒不會於步驟 2 與 3 之間遭到鎖定。若要判斷所屬應用應選擇同步或非同步模式,請務必考量您要進行讀寫的資料量,以及可供應用使用的執行緒數量。
如果必須盡可能在短時間內傳輸大量資料,應考慮以同步方式執行作業,因為這樣一來,呼叫執行緒就會專門用來將資料傳輸至硬體資源,或是自硬體資源進行傳輸。以非同步方式執行作業,則能讓呼叫執行緒存取應用中的其他部分,但如此一來,就需要花更長時間判斷資料是否已傳輸至硬體資源,或已自硬體資源完成傳輸。
如果可供應用使用的執行緒數量少於平行程序數量,選擇以非同步方式執行 NI-VISA 作業,就能更快速地將呼叫執行緒提供予應用中的其他部分使用。以同步方式執行作業,將使呼叫執行緒專供 NI-VISA 作業使用,以確保作業能盡快完成;然而,此舉也會犧牲整體應用效能。
若要在 LabVIEW 的同步與非同步函式之間進行抉擇,請參考下方的 LabVIEW 說明連結。