Ik heb een class (Class1) die 1 methode heeft (VoerUit).
In deze class maak ik een instantie naar een tweede class (Class2), die een heleboel methodes heeft.
1 van deze methodes is een langdurig proces (RunLang).
Ik wil dat dit proces niet langer duurt dan 1 minuut, dan moet een exception gegeven worden.
Ik heb hiervoor in Class2 een Timer toegevoegd met een OnTimedEvent
Globaal ziet mijn code er zo uit:
De methode RunLang doet een aantal acties in een loopje.
Na elke actie schrijft die wat weg in een log file.
De OnTimedEvent logt ook en doet een throw new Exception();
Als ik de logfile bekijk, zie ik de acties van RunLang, dan de log van de OnTimedEvent en vervolgens weer de acties.
Het event wordt dus wel getriggerd, maar de exception zorgt er niet voor dat ik in mijn catch van Class1 terecht kom, terwijl dat wel de bedoeling is.
Kan iemand me even een zetje geven hoe ik dit moet oplossen?
In deze class maak ik een instantie naar een tweede class (Class2), die een heleboel methodes heeft.
1 van deze methodes is een langdurig proces (RunLang).
Ik wil dat dit proces niet langer duurt dan 1 minuut, dan moet een exception gegeven worden.
Ik heb hiervoor in Class2 een Timer toegevoegd met een OnTimedEvent
Globaal ziet mijn code er zo uit:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| public class Class1 { private Class2 class2; public void VoerUit() { try { this.class2 = new Class2(); this.class2.RunLang(); } catch(Exception ex) { Log(ex.Message()) } finally { // Ready: this.class2.EndScript(); } } } |
De methode RunLang doet een aantal acties in een loopje.
Na elke actie schrijft die wat weg in een log file.
De OnTimedEvent logt ook en doet een throw new Exception();
Als ik de logfile bekijk, zie ik de acties van RunLang, dan de log van de OnTimedEvent en vervolgens weer de acties.
Het event wordt dus wel getriggerd, maar de exception zorgt er niet voor dat ik in mijn catch van Class1 terecht kom, terwijl dat wel de bedoeling is.
Kan iemand me even een zetje geven hoe ik dit moet oplossen?