2017-02-15 4 views
-2

So beginne ich meinen Thread wie folgt aus:Wie in C# unabhängigen Thema Schlaf machen

Thread thread = new Thread(myFunction); 
    thread.start(); 

Und diese Funktion eine Schleife hat, die einmal pro Sekunde ausführen muss:

public void myFunction(){ 
    while(true){ 
     sleep? 
    } 
    } 

Wie kann ich diesen Thread schlafen lassen, ohne meinen Haupt-Thread zu pausieren?

+1

Es gibt _many_ Beiträge auf Stack Overflow, die 'Thread.Sleep()' beschreiben, die genau wie die MSDN-Dokumentation erklären, dass nur der Thread, der diese Methode aufruft, verzögert wird. Das Aufrufen von 'Thread.Sleep()' in einem Worker-Thread verzögert den Haupt-Thread nur dann, wenn der Haupt-Thread tatsächlich aus irgendeinem Grund auf den Worker-Thread wartet. Wenn Sie versucht haben, 'Thread.Sleep()' aufzurufen und einen Thread gefunden haben, der nicht blockiert werden soll, müssen Sie eine Frage mit einem guten [mcve] posten, der dieses Verhalten zuverlässig reproduziert. –

Antwort

0

Nach MSDN, Thread.Sleep bricht den aktuellen Thread für eine bestimmte Menge an Zeit, das heißt das Gewinde, in dem die aktuelle Funktion ausgeführt wird.