如何不等待函数结束?
How to not wait a function until it ends?
我有两个功能:
function f1(a:String) {
// long processes with a...
}
function f2() {
f1("Hey");
...
}
我想要的是:
当我从 f2
调用 f1
时,我不想让 f2
被阻止。我也不希望在代码中的某个时刻完成 f1(比如加入线程)
我就是想打电话算了。它会自行运行并自行完成。
我如何在 Haxe 中管理它?谢谢!
Haxe < 4,这有点麻烦。它的工作原理与 Haxe 4 相同,但没有一种跨平台的线程类型,这使得一切都变得有点困难(cpp.vm.Thread、neko.vm.Thread 等)。
使用 Haxe 4 - 即使在其当前的候选发布状态,您也可以通过 sys.thread.Thread
实现这一点。每次你想创建一个线程来执行你的函数时,只需调用 Thread.create
。需要注意的一件事是这个函数接受一个没有参数的函数 returns 没有。如果您的函数接受一个或多个参数,您可以调用其 bind
方法,如下所述:https://haxe.org/manual/lf-function-bindings.html .
长话短说:
import sys.thread.Thread;
function f2() {
var f1thread = Thread.create(f1.bind("Hey")); // runs instantly
}
不用说,你应该检查你正在编译的平台是否有线程。
我有两个功能:
function f1(a:String) {
// long processes with a...
}
function f2() {
f1("Hey");
...
}
我想要的是:
当我从 f2
调用 f1
时,我不想让 f2
被阻止。我也不希望在代码中的某个时刻完成 f1(比如加入线程)
我就是想打电话算了。它会自行运行并自行完成。
我如何在 Haxe 中管理它?谢谢!
Haxe < 4,这有点麻烦。它的工作原理与 Haxe 4 相同,但没有一种跨平台的线程类型,这使得一切都变得有点困难(cpp.vm.Thread、neko.vm.Thread 等)。
使用 Haxe 4 - 即使在其当前的候选发布状态,您也可以通过 sys.thread.Thread
实现这一点。每次你想创建一个线程来执行你的函数时,只需调用 Thread.create
。需要注意的一件事是这个函数接受一个没有参数的函数 returns 没有。如果您的函数接受一个或多个参数,您可以调用其 bind
方法,如下所述:https://haxe.org/manual/lf-function-bindings.html .
长话短说:
import sys.thread.Thread;
function f2() {
var f1thread = Thread.create(f1.bind("Hey")); // runs instantly
}
不用说,你应该检查你正在编译的平台是否有线程。