Wie kann ich einen asynchronen Delegaten in C # 3.5 abbrechen?

8

Ich habe google oben und unten gesucht, aber ich kann fast keine richtigen Informationen über dieses Thema finden.

Was ich machen will ist das:

  1. Der Benutzer gibt eine einzelne Suchzeichenfolge in ein Textfeld ein.
  2. Ich warte 0.5 s, dann fange ich an BeginInvoice, dass mein Delegat auf eine Suchmethode zeigt.
  3. Wenn der Benutzer ein Zeichen erneut eingibt, möchte ich die Suche abbrechen und eine neue Suche mit der neuen eingegebenen Zeichenfolge starten.
  4. Der UI-Thread darf nicht blockiert werden!

Wie kann ich das mit C # 3.5 machen?

AKTUALISIEREN :

Anzeigen :

%Vor%

Suchanbieter :

%Vor%     
Pascal 30.11.2010, 12:26
quelle

2 Antworten

5

Wechseln Sie zu BackGroudWorker, unterstützt alles, was Sie brauchen (NoUI Blocking, Abbruch ect, Fortschrittsbericht ..)

    
TalentTuner 30.11.2010, 12:39
quelle
1

Sehen Sie sich CancellationTokenSource und CancellationToken , es ist eine Thread-sichere Methode, um die Löschung zu signalisieren.

Sie verwenden die CancellationTokenSource , um allen Besitzern von CancellationToken (dem Such-Thread in Ihrem Fall)

eine Absage zu geben     
thumbmunkeys 30.11.2010 12:40
quelle

Tags und Links