impossible de modifier un texte d'étiquette à partir de NetworkAddressChangedEventHandler c #

Je vais commencer par dire que je ne sais pas C# très bon et c'est probablement une solution très simple.

ce que je veux réaliser est quand l'état du réseau est changé je veux changer une étiquette

j'ai découvert comment triger et événement quand le réseau est changé

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";
        }
    }

Maintenant, quand je ai désactivé une carte nic je peux voir que AddressChangedCallback est appelé, mais VS est l'arrêt ou une erreur "opération croisée pas valide: Contrôle 'label1' accédé à partir d'un thread autre que le fil sur lequel il a été créé."

ce que j'ai besoin de changer dans mon code pour changer l'étiquette de AddressChangedCallback

Merci :)

0
ajouté l'auteur cubrr, source

1 Réponses

après plus de recherche sur le sujet, j'ai trouvé que this.Invoke ((MethodInvoker) délégué fait ce dont j'ai besoin

        this.Invoke((MethodInvoker)delegate
        {
                 //your code here
        });
0
ajouté