我正在尝试在IE中设置所有连接设置.
我已经找到了如何在路径中修改大部分内容:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
但我找不到设置或取消设置"自动检测设置"的参数.
有帮助吗?
当我从工作线程调用UI线程时,我遇到了死锁.实际上,工作线程在调用行上被阻塞:
return (ucAvancementTrtFamille)mInterfaceTraitement.Invoke(d, new object[] { psFamille });
Run Code Online (Sandbox Code Playgroud)
奇怪的是UI线程(如果我错了,纠正我,是主线程)是空闲的.
有没有办法:
我们可以在下图中看到,Invoke行上阻塞的工作线程(ID 3732),以及MainThread在应用程序的main函数中处于空闲状态.

编辑:这是主线程的堆栈:

编辑2:实际上,我第二次暂停了程序,这就是堆栈的样子:

编辑3:找到解决方法
我终于找到了解决方法.问题显然是由于异步包装器竞争条件问题.解决方法是使用BeginInvoke并等待超时.当它超时时,再次调用它并循环直到它最终返回.大多数情况下,它实际上适用于第二次调用.
IAsyncResult ar = mInterfaceTraitement.BeginInvoke(d, new object[] { psFamille });
while (!ar.AsyncWaitHandle.WaitOne(3000, false))
{
ar = mInterfaceTraitement.BeginInvoke(d, new object[] { psFamille });
}
// Async call has returned - get response
ucAvancementTrtFamille mucAvancementTrtFamille = (ucAvancementTrtFamille)mInterfaceTraitement.EndInvoke(ar);
Run Code Online (Sandbox Code Playgroud)
它并不漂亮,但它是我找到的唯一解决方案.