极客号

C# winform多线程异步更新UI?winform暂停线程

C# winform多线程异步更新UI?

首先在窗体上放一个button和一个picturebox

C# winform多线程异步更新UI?winform暂停线程-图1

(picturebox visible为false)这个多线程的目的是点击按钮后图片正常的运行,另一线程在睡眠10秒后在执行。

private void button1_Click(object sender, EventArgs e)

{

C# winform多线程异步更新UI?winform暂停线程-图2

//开启线程

System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(this.Result));

pictureBox1.Visible = true;

C# winform多线程异步更新UI?winform暂停线程-图3

button1.Enabled = false;

thread.Start();

}

winform更新UI控件的时间过长导致假死?

可以用多线程,委托创建控件的那个线程来更新控件就可以了。

if (dataGridView1.InvokeRequired) { //判断当前线程是否必须调用invoke来更新控件 dataGridView1.Invoke(new Action(() => { //委托创建控件的线程进行更新控件 dataGridView1.BackgroundColor = Color.Black;//更新控件操作 }));}

winform怎么使用新线程打开窗口?

打开窗口的代码是完全一样的,new一个窗体,用Show()或者ShowDialog()方法即可。用另一个线程的方法很多,用BeginInvoke很简单。比如:

C# winform程序,UI界面锁死。如何处理?

1和2按你的情况都是没用的,如果你所说的那个执行是个循环的话,可以在循环中加一行Application.DoEvents() 这个可以让UI不卡死,但加入这个会极大的降低你的循环执行效率。所以一般情况下还是要用多线程的。

到此,以上就是小编对于winform暂停线程,整个窗口都暂停?的问题就介绍到这了,希望介绍的4点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

本站非盈利性质,与其它任何公司或商标无任何形式关联或合作。内容来源于互联网,如有冒犯请联系我们立删邮箱:83115484#qq.com,#换成@就是邮箱

转载请注明出处:http://www.hushtel.com/sm/21356.html

分享:
扫描分享到社交APP
上一篇
下一篇