c# thread.sleep()
thread.sleep()是休眠当前进程我知道privatevoidbutton1_Click(objectsender,EventArgse){textBox1.Te...
thread.sleep()是休眠当前进程我知道
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "开始";
Thread.Sleep(3000);
textBox2.Text = "延迟";
}
我以为会先在textbox1里出现开始再等待3秒,最后textbox2才出现“延迟”。可实际上的效果是点击按钮后textbox1里没有任何字符,3秒后,2个textbox同时出现字符。
这是怎么回事啊,为什么会跳过第一句语句呢? 展开
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "开始";
Thread.Sleep(3000);
textBox2.Text = "延迟";
}
我以为会先在textbox1里出现开始再等待3秒,最后textbox2才出现“延迟”。可实际上的效果是点击按钮后textbox1里没有任何字符,3秒后,2个textbox同时出现字符。
这是怎么回事啊,为什么会跳过第一句语句呢? 展开
1个回答
推荐于2016-01-25
展开全部
你要用多线程,直接操作是不行的。
然后再多线程中操作textbox:
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(doSth));
t.IsBackground = true;
t.Start();
}
void doSth()
{
this.BeginInvoke((System.Windows.Forms.MethodInvoker)delegate()
{
try
{
textBox1.Text = "开始";
}
catch { }
});
Thread.Sleep(5000);
this.BeginInvoke((System.Windows.Forms.MethodInvoker)delegate()
{
try
{
textBox2.Text = "延迟";
}
catch { }
});
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询