Ich muss verstehen, wie ich Verzögerungen zwischen einer Reihe von Befehlen erstellen kann. Mein Hintergrund ist mit C (DOS) und die Wiederbelebung nun die Konzepte C# in Visual Studio 2015 verwenden Dies ist der Code, mit denen ich zu kämpfen:Verzögerungsfunktion in C#
using System.Threading;
private void button1_Click(object sender, EventArgs e) // Button
{
int i;
for (i = 0; i < 10; i++)
{
textBox1.BackColor = Color.Red;
Thread.Sleep(100);
textBox1.BackColor = Color.Yellow;
Thread.Sleep(100);
}
}
ich die Hintergrundfarbe der Textbox erwartet, wird alternativ 10 mal ändern aber ich konnte nur gelbe Farbe sehen, nachdem die Schleife fertig ist. Wenn ich die Verzögerung vergrößere, merke ich, dass das Programm Zeit braucht, um zu beenden. Ich habe einige verwandte Artikel durchgelesen, aber ich konnte den Punkt nicht verstehen. Jede Hilfe wird geschätzt. Danke
WinForms ist single-threaded und Ihr Aufruf an 'Thread.Sleep' wird den Thread blockieren. Sie müssen vermeiden, den UIhread zu blockieren. Das Textfeld ändert nur dann die Farbe, wenn die Steuerung zum Window-Message-Handler 'WM_PAINT' übergeht, der in Ihrem Code nie vorkommt. – Dai
Werfen Sie einen Blick auf [diesen Artikel] (http://stackoverflow.com/editing-help), um zu erfahren, wie man den Codeblock verwendet. –