Warten Sie eine Weile, ohne zu blockieren den Haupt-thread

Ich wünschte, meine Methode warten über 500 ms und dann prüfen, ob einige-flag sich geändert hat. Wie diese, ohne zu blockieren den rest meiner Anwendung?

  • Die Frage ist, tief underspecified; wir müssen wissen, was "der rest der Anwendung" ist-ist es auf dem gleichen thread, anderen threads, eine andere Maschine, was? Das heißt, fast alle Antworten bisher sind gefährlich. Entweder mithilfe von DoEvents oder Thread.Schlafen am schlimmsten sind Praktiken, die angeben, dass eine schlecht konzipierte Anwendung in Gefahr, böse re-entrancy bugs. Tudor ' s Antwort ist die beste: verwenden Sie einen timer.
  • Darüber hinaus sollten Sie untersuchen die Async CTP version von C# 5. Wir haben Hinzugefügt, Ablaufsteuerung, können Sie sehr leicht Verzögerung von 500 Millisekunden und abholen, wo Sie aufgehört haben, ohne zu blockieren alle threads oder der Inbetriebnahme von neuen message-loops.
InformationsquelleAutor santBart | 2011-12-13
Schreibe einen Kommentar