In c# (Visual Studio) einen Codeabschnitt automatisch wiederholen?

... komplette Frage anzeigen

3 Antworten

Gibt was das nennt sich "Timer". Da kannste ne Zeit angeben und ne Methode die aufgerufen wird.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Sembo
09.07.2016, 14:45

Das mit dem Timer hat funktioniert.

0

Ich persöhnlich würde es so machen:




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int zahl;
int wiederholungfnc;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
}
private void Wiederholung(int fnc = 0)
{
if(fnc == 1)
{
//code
timer1.Enabled = true;
zahl += 1;



label1.Text = zahl.ToString();
}
else if(fnc == 2)
{
//code ausgeschaltet
return;
}

}

private void cmd_start_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
wiederholungfnc = 1;
}

private void cmd_stop_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
wiederholungfnc = 2;

}

private void timer1_Tick(object sender, EventArgs e)
{
Wiederholung(wiederholungfnc);
}
}
}

Und so kannst du halt noch eingen funktionen einbauen einfach "else if(fnc == Zahlfürfunktion{}"

Antwort bewerten Vielen Dank für Deine Bewertung

Ich weiss nicht wieso keine While Schleife. Wäre für mich die idealste Lösung gewesen. (mit einem neuen Thread natürlich) aber sonst timer und im Form load Ereigniss timer1.start(); eingeben.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Sembo
09.07.2016, 14:37

Weil ich dann nicht mehr auf die Eingaben reagieren kann.

0
Kommentar von Dereta
09.07.2016, 15:05

Wie er bereits beschrieben hat mit einem neuen thread kannst du weiterhin auf eingaben reagieren. Stichwort Multithreading

0

Was möchtest Du wissen?