修改网络适配器属性时如何保证独占访问
我正在使用 WMI 的 Win32_NetworkAdapterConfiguration 类的 EnableStatic 方法来设置 Loopback 网络适配器的静态 IP 以进行测试。我注意到,当存在可见的属性表时,操作系统会解锁。当用户关闭包含更改的工作表时,事情会冻结,直到更新完成。
如何确保我的 C# 程序和 Windows UI 之间的独占访问?
I am using WMI's Win32_NetworkAdapterConfiguration class, EnableStatic method to set static IPs of a Loopback network adapter for testing. I noticed that the OS takes out a lock when there's a visible property sheet. When user dismisses the sheet with changes, things freeze up until the update has completed.
How can I ensure exclusive access between my program in C# and Windows UI?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为
Win32_NetworkAdapterConfiguration
类的EnableStatic
方法已经获取了独占锁来更改网络适配器设置。一篇 Microsoft 知识库文章让我得出了这个结论 Microsoft 知识库。还有一个名为
INetCfgLock
的 COM 接口,您可以使用它来获取用于更改网络适配器设置的独占锁。要获取锁,请使用INetCfgLock::AcquireWriteLock
方法。开始编辑:
这是 codeproject 上的项目的链接,其中显示了
INetCfgLock
COM 接口和INetCfgLock::AcquireWriteLock
在 C# 中的使用。结束编辑
希望,这有帮助。
I think the
EnableStatic
method of theWin32_NetworkAdapterConfiguration
class already acquires an exclusive lock to change the network adapter settings. A microsoft knowledge base article lead me to this conclusion Microsoft KB.There is also a COM interface called
INetCfgLock
you could use to acquire an exclusive lock for changing network adapter settings. To acquire the lock use theINetCfgLock::AcquireWriteLock
method.BEGIN EDIT:
Here is a link to the project on codeproject which shows the use of the
INetCfgLock
COM interface and theINetCfgLock::AcquireWriteLock
in C#.END EDIT
Hope, this helps.