线成与CS文件

simx_023 2008-01-09 01:02:51
我在WinForm就是Form1里,写了一个线成,在线成里
public void ErrorInfo(object ob)
{
this.richTextBox1.Invoke(new EventHandler(ThreadError), new object[] { ob, EventArgs.Empty });
}
public void ThreadError(object oInfo, EventArgs eArg)
{
this.richTextBox1.Text += "\n" + Convert.ToString(oInfo);
}
写了这个。
然后我在另外个CS文件里继承了Form1
我怎么能在我的CS文件里调用ErrorInfo函数,并且在richTextBox1里显示出来??
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
simx_023 2008-01-16
  • 打赏
  • 举报
回复
没人回答吗??
simx_023 2008-01-14
  • 打赏
  • 举报
回复
那我是用的Invoke的嘛
if (this.richTextBox1.InvokeRequired)
{
this.richTextBox1.BeginInvoke(new EventHandler(ThreadError), new object[] { ob, EventArgs.Empty });
}
else
{
this.richTextBox1.Text += Convert.ToString(ob);
}
写成这种形式,可以运行,也可以给richTextBox1赋值,但是,不会在Form1的窗口界面中显示出来。而且richTextBox1这个值也是一个初始值了??怎么解决呀
haiwangstar 2008-01-10
  • 打赏
  • 举报
回复
用户界面组件不能跨线程访问。必须使用Invoke,BeingInvoke.
或者 你使用BackgroundWorker代替线程类来使用会更简化。
simx_023 2008-01-10
  • 打赏
  • 举报
回复
- -#是另一个CS文件里的类,要调用Form1这个,但是我this.richTextBox1.Invoke这个,是在线程里才执行的。如果没在线程里就会抱错?
haiwangstar 2008-01-09
  • 打赏
  • 举报
回复
不是另外的CS文件。。是另一个类。直接调用不就行了? 到底想问什么。
shao99 2008-01-09
  • 打赏
  • 举报
回复
结合线程与事件,例如AutoResetEvent,然后通过AutoResetEvent.Set()来触发线程的运行

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧