我首先要说的是,我不知道c#非常好,这可能是一个非常简单的解决方案。
我想要实现的是当网络状态改变时我想要更改标签
我发现网络改变时如何改变和发生事件
using System.Net.NetworkInformation;
private void Form1_Load(object sender, EventArgs e)
{
NetworkChange.NetworkAddressChanged += new
NetworkAddressChangedEventHandler(AddressChangedCallback);
}
public void AddressChangedCallback(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface n in adapters)
{
label1.Text = "bla bla";
}
}
现在,当我禁用了一张nic卡时,我可以看到调用了AddressChangedCallback,但是VS正在停止或出现错误“跨线程操作无效:控制'label1'是从创建它的线程以外的线程访问的。 “
我需要在代码中更改以便从AddressChangedCallback更改标签
谢谢:)
答案 0 :(得分:0)
this.Invoke((MethodInvoker)delegate
{
//your code here
});