当前位置:编程学习 > C#/ASP.NET >>

C# 跨类线程访问

在一个项目中,有一个窗体和一个类,在类的构造函数中启动一个线程,该线程如何访问窗体控件? 线程 类 控件 c# 跨线程 --------------------编程问答-------------------- 把整个窗体当参数传进去。 --------------------编程问答-------------------- 你在窗体中声明委托或者事件,然后在类中实现具体的业务处理,在窗体的构造函数中,注册事件不就把依赖倒置过来了吗
你可以声明接口让类来实现,然后将类的实例传给窗体,窗体调用接口方法 --------------------编程问答-------------------- 多线程编程中,如果在非UI线程操作UI控件,在调试模式下会报异常,解决方法就是:
每个控件都有一个InvokeRequired属性,用来判断当前是否在UI线程下调用,如果不是返回True,可以调用
控件的Invoke方法,在委托中处理控件

 delegate void delSet(string ss);

 if (this.richTextBox1.InvokeRequired)
            {
                this.richTextBox1.Invoke(new delSet(SetText), new object[] { ss});
            }

private void SetText(string ss)
        {
            this.richTextBox1.Text = ss;
        }
--------------------编程问答-------------------- this.Invoke(new Action(() => { 你的访问UI的代码 })); --------------------编程问答-------------------- 委托            --------------------编程问答-------------------- 仅仅为了学习而来 --------------------编程问答-------------------- 最好 使用 窗体 的 invoke 方法 执行 访问 控件 的方法 --------------------编程问答-------------------- 求跨进程访问方式 --------------------编程问答-------------------- 两个应用程序直接的进程通讯
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,