如何不等到函数结束?

问题描述 投票:0回答:1

我有两个功能:

function f1(a:String) {
    // long processes with a...
}

function f2() {
    f1("Hey");
    ...
}

我想要的是:

当我从f1呼叫f2时,我不想使f2被阻止。我也不希望在代码中的某个时刻完成f1的整理工作(例如加入线程)

我只是想称呼它而忘记了。它可以运行并完成。

我该如何在Haxe中进行管理?谢谢!

asynchronous haxe
1个回答
0
投票

对于Haxe <4,这有点麻烦。它的工作方式与Haxe 4相同,但是没有一种跨平台线程类型,这使所有工作都变得更加困难(cpp.vm.Thread,neko.vm.Thread等)。

使用Haxe 4-即使在其当前候选发布状态下,也可以使用sys.thread.Thread实现。每次您想要创建一个线程来执行功能时,只需调用Thread.create。需要注意的一件事是,该函数采用的函数不带任何参数,不返回任何内容。如果您的函数采用一个或多个参数,则可以按以下说明调用其bind方法:https://haxe.org/manual/lf-function-bindings.html

长话短说:

import sys.thread.Thread;

function f2() {
    var f1thread = Thread.create(f1.bind("Hey")); // runs instantly
}

不用说,您应该检查要编译的平台是否具有线程。

© www.soinside.com 2019 - 2024. All rights reserved.