U moet het try/catch-blok in een lusconstruct plaatsen. Als u niet 100% van uw processor wilt consumeren, plaatst u een Thread.Sleep in het catch-blok, dus elke keer dat er een uitzondering optreedt, wacht het enige tijd, waardoor de processor andere dingen doet.
// iterate 100 times... not forever!
for (int i = 0; i < 100; i++)
{
try {
//do your work here;
break;//break the loop if everything is fine
} catch {
Thread.Sleep(1000);
}
}
U kunt ook het uitzonderingstype opgeven, zodat alleen de time-outuitzondering wordt afgehandeld en andere soorten uitzonderingen pass-through.
// iterate 100 times... not forever!
for (int i = 0; i < 100; i++)
{
try {
//do your work here;
break;//break the loop if everything is fine
} catch (TimeOutException) {
Thread.Sleep(1000);
}
}
Merk op dat TimeOutException moet worden vervangen door de echte naam van de uitzondering ... Ik weet niet of dat de echte naam is.
Pas ook de slaaptijd aan, gegeven in millisecs en de hoeveelheid herhalingen, in het geval dat ik presenteerde, 100 herhalingen van 1000 ms levert een maximale wachttijd op van 1 minuut en 40 seconden, plus de bedrijfstijd zelf.