C# 无法从NetworkAddressChangedEventHandler 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

我首先要说的是,我对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更改标签,我需要在代码中更改什么


谢谢:)

在对主题进行更多搜索后,我发现这个.Invoke((MethodInvoker)委托 他在做我需要的事

        this.Invoke((MethodInvoker)delegate
        {
                 //your code here
        });
可能重复的