Entwickler-Ecke
C# - Die Sprache - Programmabschnitt wiederholen
Geneesys - Mo 14.05.12 11:18
Titel: Programmabschnitt wiederholen
Hallo alles zsm,
Ich möchte gerne das mein Programm nach dem durchlauf wieder von vorne anfängt.
Ich hatte es bereits mit Case und goto versucht nur leider wurde dabei nichts mehr in die ListBox eingetragen.
Nun ja erstmal der Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| private void button1_Click(object sender, EventArgs e) { if (textBox1.Text != string.Empty) { System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping(); System.Net.NetworkInformation.PingReply prep; string url = textBox1.Text; prep = p.Send(url); if (prep.Status == System.Net.NetworkInformation.IPStatus.Success) { string address = prep.Address.ToString(); string time = prep.RoundtripTime.ToString(); listBox1.Items.Add("Ping: "+time+"ms");
} else { string status = prep.Status.ToString(); listBox1.Items.Add("Fehler: " + status); } } else listBox1.Items.Add("URL-IP Fehler"); } |
Und hab hier soll es nach 5 Sekunden wieder von vorne anfangen.
Kann mir da jemand helfen ?
Ich habe es auch schon mit schleifen probiert aber ich habe ja eig. keine bedingungen ... Da ich ein Anfänger bin habe ich es nicht so richtig hinbekommen.
Wäre für jeden Tipp dankbar!
Gruß
Moderiert von
Th69: C#-Tags hinzugefügt
Geneesys - Mo 14.05.12 11:55
Hey,
Danke für eine schnelle Antwort.
Kann ich das nicht vllt doch irgendwie mit "Case" lösen ?
Dann könnte ich am ende(GOTO)bevor er wieder von vorne beginnt noch ein
C#-Quelltext
1:
| System.Threading.Thread.Sleep( 500 ); |
einfügen :/
Oder geht das alles vllt noch einfacher ?
Gruß
Geneesys
Moderiert von
Th69: C#-Tags hinzugefügt
Th69 - Mo 14.05.12 12:40
Hallo Geneesys,
ein Thread.Sleep() legt deinen GUI-Thread lahm (d.h. die GUI wäre nicht mehr bedienbar -> "Programm reagiert nicht mehr"!).
Ein Timer ist dafür gerade die richtige Wahl.
Geneesys - Mo 14.05.12 12:45
Hättest du vllt hier ein beispiel für einen Timer ? (:
Wie ich einen Timer erstelle habe ich bereits etwas gefunden. Nur wie bekomme ich es nun in meinen Button :/
C#-Quelltext
1: 2: 3: 4: 5:
| System.Timers.Timer aTimer = new System.Timers.Timer(); aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); aTimer.Interval = 2000; aTimer.Enabled = true; |
Moderiert von
Th69: C#-Tags hinzugefügt
mats74 - Mo 14.05.12 13:38
So müsste deine Codestruktur aussehen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| namespace DeinNamespace { public partial class DeineKlasse : Form { public DeineKlasse() { InitializeComponent(); }
private void timer1_Tick(object sender, EventArgs e) { DeineMethode(); }
private void button1_Click(object sender, EventArgs e) { DeineMethode(); }
private void DeineMethode() { } } } |
Dieses Beispiel zeigt Dir eine Klasse einer WinForm-anwendung.
Den Timer solltest Du nicht in Button-Event erstellen sondern nach dem initialisieren der Form oder direkt in der Klasse.
Das gleiche gilt für eine Konsolenanwendung.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!