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

3 Antworten

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{}"

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

Woher ich das weiß:Studium / Ausbildung – Informatikstudium

Sembo 
Beitragsersteller
 09.07.2016, 14:45

Das mit dem Timer hat funktioniert.

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.


Dereta  09.07.2016, 15:05

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

Sembo 
Beitragsersteller
 09.07.2016, 14:37

Weil ich dann nicht mehr auf die Eingaben reagieren kann.