VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > C#编程 >
  • C#教程之Unity3d(C#)开启多个线程,子线程怎么传递数据给主线程?

本站最新发布   C#从入门到精通
试听地址  
https://www.xin3721.com/eschool/CSharpxin3721/

问题是这样的,我在Unity3d中,开启了一个新的线程下载任务,
m_Thread = new Thread(new ThreadStart(DW.Down));
m_Thread.Start();
下载的过程中我需要把下载的信息传给主线程。
然后网上搜到子线程传数据给主线程的方法,千篇一律是利用delegate,就是在主线程中定义一个delegate的方法,然后把delegate传给子线程,然后在子线程中调用delegate,仿佛就在主线程执行了一样。
像这样(子线程中调用):
CallBackDelegate cbd = o as CallBackDelegate;
cbd(0, true);
按照网上各路“大神”博客的观点,定义的delegate是在主线程,所以执行的地方也在主线程,这个就已经传数据给了主线程。
明显函数的调用只会在当前线程执行,子线程执行的cbd,没有切换线程的触发点,以后的逻辑一直就在子线程执行了。所以实际上根本没有传数据给主线程,一切只是幻觉而已。
所以,到底怎么样才能实现我在子线程中传送数据给主线程。
相关教程