【发布时间】:2020-01-28 20:12:08
【问题描述】:
我想统一显示图像(使用 C# 脚本),我需要创建一个线程来实现它。但是,程序说 LoadImage() 只能从主线程调用。在这种情况下,如何显示图像? (我必须使用多线程)
【问题讨论】:
-
你不能。大多数 Unity API 只能在主线程中使用。不幸的是,基本上所有常见的 Texture2D 东西都只能同步使用。除了也许你可以试试ECS,但设置起来有点棘手
-
为什么必须使用“多线程”?
-
你可以从主线程开始一个新线程,传递一个字节数组的引用。在辅助线程中,您对数据进行反序列化。完成后,终止线程,您的 main 具有对您可以传递给 LoadImage 的数据的引用。
-
@Everts 是真的 .. 但
LoadImage本身仍然在主线程中运行;)而且它也相当昂贵 -
你可以在主线程中运行特定的操作。看看stackoverflow.com/questions/54206912/…
标签: c# multithreading unity3d