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.

0

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

0
Sembo 
Beitragsersteller
 09.07.2016, 14:37

Weil ich dann nicht mehr auf die Eingaben reagieren kann.

0