以下问题是关于统一游戏引擎的,但它可能与任何试图将数据发送到主线程(例如 UI 线程)的程序有关。
我正在一个单独的线程上处理一些数据(定位数据从套接字异步读取)。但是,我需要在主线程上处理这些数据(游戏对象的变换只能从主线程访问)。我想到的方法是创建一个线程安全队列并遵循生产者-消费者模式。线程将对位置数据进行排队,主线程将数据出列并对其进行操作。*注意:在 Unity 中,我无法访问 System.Windows.Threading 名称空间,因此无法使用 Dispatcher。此外,它需要 .Net 3.5,所以我也不能使用 Collections.Concurrent 名称空间。
有更好的方法吗?
如果没有,当数据排队时通知主线程的最佳方法是什么?投票似乎效率低下,但我想不出任何办法。
提前致谢。