【发布时间】:2023-04-08 04:01:01
【问题描述】:
所以,问题就在标题中。当我进行长时间循环时,无论目标平台如何,应用程序都会冻结。 第三方循环也会导致冻结:
var s:Socket = new Socket();
var data:String;
s.connect(new Host("localhost"), 5000);
s.waitForRead();
我什至无法制作一个简单的套接字应用程序,因为它的主要思想是使用持久循环。当我不使用 OpenFL 时,一切正常。我应该手动减少循环内的 CPU 负载吗?如果可以,我该怎么做?
【问题讨论】:
-
也许你用这个
s.waitForRead()调用阻塞了主线程(从而阻塞了游戏/应用程序循环)?如果是这种情况,您可以将此代码放在单独的线程中或完全避免阻塞调用(通过从其他循环中轮询或使用基于事件的 API,如果您的目标平台支持它们)。 -
@JonasMalacoFilho 是对的。 AFAIK,OpenFL 模仿 Flash 的 15 秒循环限制。
标签: loops infinite-loop haxe openfl