Я хочу создать метод, который заставляет мое приложение ждать X секунд, а затем продолжает линию строк. Например, это код, который я до сих пор, после прочтения многих подобных разделов справки:Как создать метод «Сон» для моего приложения
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
{
public Form1()
{
InitializeComponent();
methods.WriteTextToScreen(label1, "Hello!");
methods.sleepFor(1);
methods.WriteTextToScreen(label1, "Welcome!");
methods.sleepFor(1);
methods.WriteTextToScreen(label1, "Allo!");
}
public class methods
{
public static int timeSlept;
public static void WriteTextToScreen(Label LabelName, string text)
{
LabelName.Text = text;
}
public static void sleepFor(int seconds)
{
timeSlept = 0;
System.Timers.Timer newTimer = new System.Timers.Timer();
newTimer.Interval = 1000;
newTimer.AutoReset = true;
newTimer.Elapsed += new System.Timers.ElapsedEventHandler(newTimer_Elapsed);
newTimer.Start();
while (timeSlept < seconds)
{
Application.DoEvents();
}
Application.DoEvents();
}
public static void newTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
timeSlept = IncreaseTimerValues(ref timeSlept);
Application.DoEvents();
}
public static int IncreaseTimerValues(ref int x)
{
int returnThis = x + 1;
return returnThis;
}
}
}
}
То, что я хочу сделать, это моя программа делать в methods.WriteTextToScreen (Label1, «Привет!») затем подождите 1 секунду, затем продолжайте то же самое. Проблема в том, что форма, в которой я показываю текст, не появляется вообще, пока она не написала «Allo!» на экране, поэтому в первый раз, когда он появляется, это уже говорит об этом. Я что-то делаю неправильно, или просто нет способа сделать это?
О, бог, а не применение.DoEvents(). Он просто не умрет! – ose
Фактически этот [Таймер] (http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx) ref является более актуальным. Также вам не нужно вводить языки в свои заголовки, для чего нужны теги. – ChiefTwoPencils