C# 无法从NetworkAddressChangedEventHandler c更改标签文本#
我首先要说的是,我对c不太了解,这可能是一个非常简单的解决方案 我想要实现的是,当网络状态改变时,我想要改变标签 我了解了如何在网络发生变化时触发和触发事件C# 无法从NetworkAddressChangedEventHandler c更改标签文本#,c#,multithreading,visual-studio-2010,C#,Multithreading,Visual Studio 2010,我首先要说的是,我对c不太了解,这可能是一个非常简单的解决方案 我想要实现的是,当网络状态改变时,我想要改变标签 我了解了如何在网络发生变化时触发和触发事件 using System.Net.NetworkInformation; private void Form1_Load(object sender, EventArgs e) { NetworkChange.NetworkAddressChanged += new
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更改标签,我需要在代码中更改什么
谢谢:)在对主题进行更多搜索后,我发现这个.Invoke((MethodInvoker)委托 他在做我需要的事
this.Invoke((MethodInvoker)delegate
{
//your code here
});
可能重复的