2016-11-16 4 views
-3

Ich habe ein C# -Programm geschrieben, das den Code wiederholen sollte, um die DateTime-Informationen zu aktualisieren und den Text eines Etiketts entsprechend anzupassen. Wenn ich es ausführe, wird das Formular jedoch nicht angezeigt. Warum passiert das und wie kann ich das Formular anzeigen lassen?Wie mache ich eine Endlosschleife in C# Windows Formularanwendung

Dies ist mein Code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Windows.Forms; 

    namespace Clock 
    { 
     static class Program 
     { 
      /// <summary> 
      /// The main entry point for the application. 
      /// </summary> 
      [STAThread] 
      static void Main() 
      { 
       Application.EnableVisualStyles(); 
       Application.SetCompatibleTextRenderingDefault(false); 
       Application.Run(new clock()); 
      } 
     } 
    } 

Ignorieren meine Einzüge (was nicht richtig sein kann oder nicht, aber im Programm korrekt ist), was mache ich falsch, und wie kann ich es beheben?

Danke!

Logan Slowik

+1

bestem Weg, dies zu debuggen ist wahrscheinlich einen Pause-Punkt auf der Linie 'Application.Run (new Uhr())' und sieht zu setzen, wenn Sie noch erreichen es – phil652

+2

Ihr Problem ist nicht in dem bereitgestellten Code. – series0ne

+1

Und in Antwort auf die Titelfrage ... while (wahr) {...} – series0ne

Antwort

2

Scheint, wie Sie den UI-Thread mit dem Endlos-Schleife blockieren. Sie können async verwenden, um zu vermeiden, Ihre UI zu blockieren ... Rufen Sie einfach diese Methode in Ihrer Form_Load-Methode auf. InfiniteLoop();

async void InfiniteLoop() 
{ 
    while(true) 
    { 
     await Task.Delay(100); 
     this.Text = DateTime.Now.ToString(); 
    } 
} 

können Sie auch prüfen, mit Timer

Verwandte Themen