求救:C#中INvoke为什么不没有效果,代码如下

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:42:55
NetworkInformation.NetworkChange.NetworkAddressChanged += new NetworkInformation.NetworkAddressChangedEventHandler(WatchNet);

voide WatchNet(参数)
{
if (myRas.GetRasConnectStatus())//如果联网
{
Thread neton = new Thread(new ThreadStart(NetOn));
neton.Start();
}
else
{
Thread netoff = new Thread(new ThreadStart(NetOff));
netoff.Start();
}

}

void NetOn()
{
this.visible=false;
}当联网为什么窗口不能隐蔽
void NetOn()
{
if (this.invokerequried)
{
mydele hide=new mydele(NetOn);
this.invoke(hide);
}
else
this.visible=false;
}当联网为什么窗口不能隐蔽

加个断点先看看 程序执行 窗口隐蔽了没有

没有具体信息,没人能给你答出为什么,
1.确定 NetOn函数首先执行了 this.invoke(hide)然后重新进入 执行 this.visible=false
2.简单的测试一下,把Debug,Exception全部打开,NetOn使用不带有invoke的版本,运行观察是否有跨线程访问Form的异常产生,如果没有,那可能是压根没执行到NetOn,或者是根本不需要用invoke(这个可能性比较小)
3.检查下Delegate类 mydele 因为你没有贴出来...
下次你最好能给出个大圈问个小点,别给个小点问个大圈,谢谢