Einfache Methode, um die Methode nach einer bestimmten Verzögerung auszuführen?

7

Gibt es einen einfachen Weg, um eine Methode nach einer bestimmten Verzögerung wie in iOS out of the box durchzuführen?

Auf dem iPhone würde ich das tun:

[self performSelector:@selector(connectSensor) withObject:nil afterDelay:2.5];

Er plant dann die Methode connectSensor im Haupt-Thread (UI-Thread), die nach 2,5 Sekunden ausgeführt wird. Und weil es automatisch im Hauptthread eingeplant wird, müssen Sie sich nicht um Probleme mit Kreuzthreads kümmern. (Es gibt auch eine performSelectorOnBackground version)

Wie würde ich das in WP7 richtig machen?

Momentan beende ich dies mit einem Timer, aber ich bin mir nicht sicher, ob das eine gute Lösung ist.

%Vor%

Wie könnte dies in eine Erweiterungsmethode eingekapselt werden, so dass ich einfach this.Perform(MyMethod, null, 2500); ?

aufrufen kann     
Buju 18.01.2011, 16:09
quelle

2 Antworten

11

Sie können einen BackgroundWorker wie folgt verwenden:

%Vor%

Der Aufruf dieser Methode würde folgendermaßen aussehen:

%Vor%

Der Hintergrund-Worker führt den Ruhezustand in einem Thread aus dem Benutzeroberflächenthread aus, sodass Ihre Anwendung während der Verzögerung andere Aufgaben ausführen kann.

    
avanek 19.01.2011, 13:36
quelle
8

Sie können die Reaktive Erweiterungen für WP7 verwenden, um auf einem Timer zu beobachten:

%Vor%

Angesichts der Kürze dieses Codes glaube ich nicht, dass Sie viel gewinnen würden, indem Sie eine Erweiterungsmethode dafür erstellen :) Weitere Informationen zu den Reaktiven Erweiterungen für WP7 finden Sie in diesem MSDN-Seite .

    
Derek Lakin 18.01.2011 16:33
quelle