In c# (Visual Studio) einen Codeabschnitt automatisch wiederholen?
HI leute.
Und zwar folgendes:
Ich arbeite an einer Windows Forms Anwendung und brauche einen Codeabschnitt regelmäßig wiederholt. Allerdings schaffe ichs irgendwie nur auf Buttons oder ähnliches zu reagieren. Ich will dass dieser Code sich aber permanent wiederholt wie in einem klassischen C Programm, ohne While-Schleife!
Konnte leider nichts ergooglen.
Hoffe das geht und ihr kennt eine Lösung.
mfg
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.
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.
Wie er bereits beschrieben hat mit einem neuen thread kannst du weiterhin auf eingaben reagieren. Stichwort Multithreading
Weil ich dann nicht mehr auf die Eingaben reagieren kann.