共用方式為


RDT_ReadLock 使用量

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

RDT_ReadLock鎖定文件中執行文件資料表 (RDT),這是 Visual Studio IDE 中目前開啟的所有文件的清單會提供邏輯的旗標。 這個旗標決定文件開啟時,以及文件是顯示在使用者介面或保留在記憶體中無形的方式。

一般而言,您會使用RDT_ReadLock的下列其中一個為 true 時︰

  • 當您想要開啟的文件,以隱藏和唯讀的但它尚未建立的IVsHierarchy應擁有。

  • 當您想要會提示您儲存的文件,以無形的方式開啟,使用者在 UI 中顯示,並將它關閉,則嘗試進行的使用者。

如何管理可見和不可見的文件

當使用者在 UI 中,開啟文件IVsHierarchy文件的擁有者必須先建立和RDT_EditLock旗標必須設定。 如果沒有IVsHierarchy可以建立擁有者,則將不會儲存文件,當使用者按一下全部儲存或關閉 IDE。 這表示如果文件就會開啟無形的方式修改在記憶體中,且使用者是系統提示您儲存文件在關閉或如果儲存全部儲存選擇時,則RDT_ReadLock無法使用。 相反地,您必須使用RDT_EditLock並註冊IVsDocumentLockHolderRDLH_WeakLockHolder旗標。

RDT_EditLock 和文件修改

先前所述的旗標表示將會產生不可見的文件開啟其RDT_EditLock文件開啟時使用者為可見DocumentWindow。 發生這種情況,使用者會看見儲存提示時可見DocumentWindow已關閉。 P:Microsoft.VisualStudio.Package.Automation.OAProject.CodeModel使用的實作IVsInvisibleEditorManager服務一開始運作時只有RDT_ReadLock會採取 (亦即,當剖析資訊無形的方式開啟文件)。 稍後,如果文件必須經過修改,然後鎖定會升級到較弱RDT_EditLock。 如果使用者再開啟文件中可見DocumentWindowCodeModel的弱式RDT_EditLock發行。

如果使用者再關閉DocumentWindow選擇當系統提示您儲存開啟的文件,然後在CodeModel實作處置的文件中的所有資訊,再重新從磁碟文件開啟無形的方式,將下一次需要文件的詳細資訊。 這個行為的微妙影響是在使用者開啟其中的執行個體DocumentWindow的不可見的開啟文件,加以修改,就會關閉它,並選擇當系統提示您儲存文件。 在此情況下,如果文件RDT_ReadLock,然後將文件將不實際上會關閉,並修改過的文件會保持開啟狀態無形的方式在記憶體中,即使在使用者選擇不儲存文件。

如果看不見文件的開頭使用弱式RDT_EditLock,則它會產生其鎖定,當使用者開啟文件,明顯地,以及任何其他鎖定。 當使用者關閉DocumentWindow選擇當系統提示您儲存文件,然後關閉文件必須可從記憶體。 這表示不可見的用戶端必須接聽 RDT 事件來追蹤發生這種情況。 下一次的文件是必要項目,必須重新開啟文件。