我正在使用WMI的Win32_NetworkAdapterConfiguration类,EnableStatic方法来设置回送网络适配器的静态IP进行测试。我注意到,当有可见的属性表时,操作系统会取消锁定。当用户使用更改撤消工作表时,事情会冻结直到更新完成。

如何确保C#程序和Windows UI之间的互斥访问?

最佳答案

我认为EnableStatic类的Win32_NetworkAdapterConfiguration方法已经获得了排他锁,以更改网络适配器设置。微软知识库文章使我得出Microsoft KB这个结论。
还有一个名为INetCfgLock的COM接口(interface),可用于获取用于更改网络适配器设置的排他锁。要获取锁,请使用INetCfgLock::AcquireWriteLock方法。

开始编辑:

这是codeproject上项目的链接,其中显示了INetCfgLock COM接口(interface)和C#中INetCfgLock::AcquireWriteLock的用法。

结束编辑

希望这可以帮助。

08-26 18:01