日期:2014-05-19  浏览次数:20705 次

简单线程问题,请大家帮帮忙,为什么数据不出来
源程序如下:
a()
{
b();

}

b()
{
      Thread   thread=new   Thread(new   ThreadStart(c);
thread.IsBackground   =   true;
  thread.Start();
}
c()
{
//数据显示,listview
}


------解决方案--------------------
我上边说的 "用Invoke或BeginInvoke去同步到那个线程上 "可以这样做:

private delegate void DisplayListviewDelegate();

//你的c()函数需要这样写:
private void c()
{
if (myListview.InvokeRequired)
myListview.Invoke(new DisplayListviewDelegate(DoDisplayJob));
else
DoDisplayJob();

}

private void DoDisplayJob()
{
//myListview 中显示数据
}
------解决方案--------------------
楼上正解....和其它语言中的多线程应用差不多,