TimerCallback

Hallo zämmä

Ich habe eine Frage, mit welchem Befehl kann ich einen Tread, der im Hintergrund läuft beenden?

Ich weiss, dass „String^s=Console::ReadLine();“ mit der Taste Enter abbricht. Ich möchte aber, dass das Programm nach einer Anzahl durchläufen abbricht.

Kann mir jemand helfen?

Gruss Renato

Wie wäre es mit einer for-Schleife?

Grüße, JasonDelife.

Danke für deine Antwort!

Eine for Schleife kann ich nicht machen, denn sobald dass der Interrupt aufgerufen ist, läuft die Ausgabe durch.

void Interrupt(Object^ o)
{
Console::WriteLine(DateTime::Now.ToString());
}

void main()
{
int intervall=1000;

Timer^t=gcnew Timer(gcnew TimerCallback(&Interrupt),nullptr,0,intervall); //so übernehmen

String^s=Console::ReadLine();
}

Gruss Renato

Achso ein Timer. In deinem Post hast du von Threads gesprochen, da dachte ich, dass du die Thread-Klasse verwendest. Beim Timer zählst du einfach in jedem Elapsed_Event eine Variable um 1 hoch und prüfst, ob sie einen bestimmten Wert überschritten hat. Dann beendest du den Timer. Dafür musst du ihn aber als Member anlegen.
Sollte das nicht das sein, was du erreichen willst, dann formuliere deine Frage bitte nocheinmal anders.

Grüße, JasonDelife.

void Interrupt(Object^ o)
{
Console::WriteLine(DateTime::Now.ToString());
}

void main()
{
int intervall=1000;

Timer^t=gcnew Timer(gcnew
TimerCallback(&Interrupt),nullptr,0,intervall); //so
übernehmen

String^s=Console::ReadLine();
}

Mein Problem ist folgendes. Ich brauche 1 bis 20 Messwerte (Zufallszahl) inkl. Zeitsempel. Wenn ich jetzt 5 Messwerte will, soll das Interrupt(Object^ o) nur 5x aufgerufen werden. Ich weiss aber nicht zu welchem Zeitpukt das 5x ist.
Ich habe mir vorgestellt, anstelle Abbruch mit Enter eine Variabel einzugeben z.b. 5 und dass er dann nach 5x abbricht.

Gruss Renato