Eine Funktion von "Aussen beenden"
-
Gibt es eine Möglichkeit. Eine Funktion von aussen beenden.
Die Situation:
Eine Funktione, vom Anwender einer Lib erstellt, muss durch die Lib beendet werden.
Beispiel:
int FunktionAnwender() { while(schleife) tu was.... wend return 0; }so eine Funktion soll von aussen beendet werden. Ich weiss ich könnte eine Globale Variable benutzen und der Anwender könnte z.B. prüfen ob diese True ist oder False.
Aber das will ich ja umgehen.Wird auf einem Windows-System laufen.
-
Ohne dass du in der Funktion den Status einer Variable bzw. ein Event abfragst, wird das wohl nicht gehen...
-
Die saubere Lösung wäre, dass die Funktion sich selbst in Abhängigkeit vom Zustand eines Events oder eben einer globalen Variable selbst beendet. Falls du das aber erzwingen willst, müsstest du die Funktion in einem neuen Thread starten, den du bei Bedarf abwürgen könntest. Das ist aber in keinem Fall eine saubere Lösung, nicht zuletzt, weil man damit der Funktion nicht erlaubt, ihre Ressourcen ordnungsgemäß aufzuräumen.