多线程更新UI的问题。详情如内

FunnyRabbit 2010-11-03 04:41:10
假设这样的情况

现在有个类A,是个界面,上面有个控件,用于显示数据。里面有个方法show用于将传入的数据显示到控件里。该将负责实例化B,把B中读数据的方法做成线程。

另外有个类B,这个类可能在别的项目中,他的一个方法会被做成线程,用于读取数据。如果它在引用中添加A就会造成循环引用。

现在要求 show方法的方法名在线程被创建时传入 当线程读取到一点数据后,就根据传入的方法名调用方法,(显然不能重新new A)。继续读取,继续调用,直到数据读完。

我想了Invoke EventHandler 这些 但是还是乱糟糟的不知道怎么用?

谁能个大致的参考代码,有基本的结构用法就行!!!!!!
...全文
135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
FunnyRabbit 2010-11-03
  • 打赏
  • 举报
回复
真的就没办法么?
FunnyRabbit 2010-11-03
  • 打赏
  • 举报
回复
ls的那些都是在一个类中。那样的情况我上次已经解决了
但是这次是在两个类中,而且线程那个类只能通过传入的方法名,才知要调用哪个调用的方法
CGabriel 2010-11-03
  • 打赏
  • 举报
回复
看 MSDN, Control.BeginInvoke


public delegate void MyDelegate(Label myControl, string myArg2);

private void Button_Click(object sender, EventArgs e)
{
object[] myArray = new object[2];

myArray[0] = new Label();
myArray[1] = "Enter a Value";
myTextBox.BeginInvoke(new MyDelegate(DelegateMethod), myArray);
}

public void DelegateMethod(Label myControl, string myCaption)
{
myControl.Location = new Point(16,16);
myControl.Size = new Size(80, 25);
myControl.Text = myCaption;
this.Controls.Add(myControl);
}

111,129

社区成员

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

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

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