线程更新UI (线程与委托)

来源:互联网 发布:linux赋予用户组权限 编辑:程序博客网 时间:2024/06/05 12:03

线程更新UI

1.委托主线程:

this.Invoke((EventHandler)(delegate
        {
UI更新
}));


if (this.richTextBox_message.InvokeRequired)
{
    this.Invoke((EventHandler)(delegate
    {
        控件操作;
    }));
}
else
{
    控件操作;
}



2.自定义委托

1)在命名空间下定义委托

namespace xxxxx
{
delegate void委托1(string 参数1);//建立委托,设置输入参数为string (可根据控件需求来修改参数类型)

2)建立对控件操作的函数 , 调用 函数1 对控件进行赋值即可

private void 函数1(string  参数1)
{
    if (this.控件1.InvokeRequired)
    {
        委托1 d =new委托1(函数1);
         this.Invoke(d,new object[] { 参数1 });//唤醒
    }
    else
    {
        控件1.Text= 参数1
    }

}


创建线程

Thread aaa; //创建线程aaa
aaa = new Thread(函数1); //要运行在新线程的函数
aaa.Start(); //开始线程
//aaa.Abort(); //结束线程


匿名线程

ThreadStart threadStart = new ThreadStart(delegate()

{

线程内运算逻辑;

});

Thread thread = new Thread(threadStart);

thread.Start();//多线程启动匿名方法


原创粉丝点击