C#中的委托类型

来源:互联网 发布:淘宝女装店铺logo设计 编辑:程序博客网 时间:2024/05/22 03:14

1、C#中经常会使用到委托类delegate,这个功能类似于C++中的指针,只是叫法不一样而已。主要解决的问题是

跨线程访问控件的问题,因为窗体上的控件只允许创建他们的线程访问。也就是只有主线程才可以访问。 如果不是主线程的话就会出现异常。我们可以借助控件的invokerequired属性来判断该控件是否被主线程访问。

       这里我们要讲的是如何显示调试信息,并显示在listbox之中。


  private delegate void DeleList(string str);//声明一个DeleList委托类型,返回值为空,参数为string类型

private void ShowList(string str)
        {
            if (this.listBox1.InvokeRequired)//判断这个控件listbox1是否有被主线程访问
            {
                DeleList DL = new DeleList(ShowList);
                this.Invoke(DL);//this这里指窗体,在这里调用窗体的invoke方法,
            }
            else
            {
                listBox1.Items.Add(DateTime.Now.ToString() + str);
            }
        }


后续将持续更新更多关于委托+多线程的解决方案

0 0