回 帖 发 新 帖 刷新版面

主题:[讨论]关于多线程操作

我编写了一个多线程类,其中有一个在线程中使用的事件,当我在窗体中使用这个事件的时候报告我错误

类代码线程部分代码如下:


public class myTr

{

        public delegate void myDel(object sender, string a);
        public event myDel myEve;

        public CustomControl1()
        {
            InitializeComponent();
        }
        private void sdd()
        {
            myDel a;
            a = new myDel(ddd);
            object[] s = new object[2];
            s[0] = this;
            s[1] = "ccccc";
            this.BeginInvoke(a,s);
        }

        private void ddd(object sender,string a)
        {
            if (myEve != null)
                myEve(sender, a);
        }


        public void runData()
        {
            Thread s = new Thread(sdd);
            s.Start();
        }

 

        public IAsyncResult BeginInvoke(Delegate method, object[] args)
        {

            method.DynamicInvoke(args);

            return null;
        }

}

 

如何实现再窗体中使用myEve事件调用Label控件的Text属性

我不要再事件中调用Lable控件的BeginInvoke方法或者Invoke方法

有人能够解决这个问题么?

 

回复列表 (共1个回复)

沙发

你这个类里面没有InitializeComponent和BeginInvoke的定义嘛

本来就应当是在新的线程中使用(Begin)Invoke与UI线程元素进行交互

我来回复

您尚未登录,请登录后再回复。点此登录或注册