3
我正在使用WMI的Win32_NetworkAdapterConfiguration類,EnableStatic方法來設置用於測試的Loopback網絡適配器的靜態IP。我注意到當有可見的屬性表時,操作系統會取出一個鎖。當用戶使用更改解除工作表時,事情會凍結,直到更新完成。如何在修改網絡適配器屬性時保證獨佔訪問
如何確保我的程序在C#和Windows UI之間獨佔訪問?
我正在使用WMI的Win32_NetworkAdapterConfiguration類,EnableStatic方法來設置用於測試的Loopback網絡適配器的靜態IP。我注意到當有可見的屬性表時,操作系統會取出一個鎖。當用戶使用更改解除工作表時,事情會凍結,直到更新完成。如何在修改網絡適配器屬性時保證獨佔訪問
如何確保我的程序在C#和Windows UI之間獨佔訪問?
我認爲Win32_NetworkAdapterConfiguration
類的EnableStatic
方法已經獲得一個排它鎖來更改網絡適配器設置。微軟知識庫文章引導我得出這個結論Microsoft KB。 還有一個稱爲INetCfgLock
的COM接口,您可以使用它來獲取更改網絡適配器設置的排他鎖。要獲得鎖,請使用INetCfgLock::AcquireWriteLock
方法。
BEGIN編輯:
下面是該項目中的鏈接codeproject這說明使用INetCfgLock
COM接口和C#中的INetCfgLock::AcquireWriteLock
。
END編輯
希望,這有幫助。
你會如何在C#中做到這一點? – GregC
關於推論的話題:聽起來好像修復後的EnableStatic不再取出鎖,只是爲了讓用戶應用程序不會崩潰。 – GregC
@GregC:我已經更新了我的答案,並鏈接到了一個codeproject C#示例。 – Hans