Ich habe einen Haupt-Thread t1 genannt:Überprüfen Sie, ob ein Thread rekursiv ausgeführt wird?
Thread t1 => new Thread(UpdateResults);
, das ein Verfahren ausführen UpdateResult
diese Methode erfordert Internetverbindung genannt. Jetzt könnte die Verbindung manchmal unterbrochen werden. Wenn die Verbindung unterbrochen ist, gibt die Methode eine Ausnahme zurück und der Thread t1
beendet die Ausführung.
Ich brauche den Faden wieder auszuführen t1
so, obwohl ich t2
einen anderen Thread zu erstellen, die rekursiv prüfen, ob der Faden t1
ist oder nicht ausgeführt wird.
Beide Gewinde werden automatisch gestartet. Dies ist der Code des Gewindes t2
Methode:
while (true)
{
if (!t1.IsAlive)
{
t1.Start();
}
}
dieser Code unfortuntely die App UI verlangsamen, weil es eine unendliche Schleife. Was kann ich stattdessen tun, um das zu beheben?
Wrap 'UpdateResults' in einem' try..catch' Block? – BlackBear
@BlackBear ist bereits in einem Versuch Catch-Block, aber der Thread beendet die Ausführung, wenn eine Ausnahme ist – AgainMe
Ich würde sagen, "updateresults" haben die erneute versuchen/verbinden, nicht der Thread. Der Thread sollte nur dort sein, wo die Arbeit gemacht wird, nicht ein Tester, um zu wissen, ob es getan wurde, denke ich. –