Refreshing Label Inhalt jede Sekunde WPF

8

Ich versuche, einen Etiketteninhalt jede Sekunde zu aktualisieren. Also definiere ich zwei Methoden wie folgt. Ich benutze startStatusBarTimer() in meinem Konstruktor von Window .

Codes:

%Vor%

Aber ich bekomme diesen Fehler:

Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da ein anderer Thread es besitzt.

Was ist los? Oder Was kann ich tun?

    
Babak.Abad 15.09.2013, 19:23
quelle

2 Antworten

10

Sie stehen vor dem Problem Thread-Affinität . Da das Ereignis "verstrichen" in background thread aufgerufen wird, können Sie nicht auf Hintergrundsteuerelemente aus dem Hintergrundthread zugreifen. Sie müssen Ihre Aktion auf UI dispatcher setzen, damit sie an den UI-Thread gesendet wird -

%Vor%

ODER

Sie können DispatcherTimer verwenden, das speziell für diesen Zweck erstellt wurde. Sie können über den Ereignishandler Tick auf UI-Steuerelemente zugreifen. Sehen Sie sich das Beispiel hier unter MSDN an.

    
Rohit Vats 15.09.2013, 19:30
quelle
2

Verwenden Sie den folgenden Code zum Aktualisieren eines beliebigen Steuerelements in der WPF-Anwendung. Sie müssen diese Klasse in Ihrem Namespace überschreiten.

%Vor%

danach wie folgt verwenden.

%Vor%     
Jeetendra Negi 06.01.2016 17:49
quelle

Tags und Links