Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
能否使用javascript停止当前运行的c++;在WebAssembly中? 我用C++编写了一个仿真,并将其编译成WASM。javascript使用ccall调用代码,这一切都发生在web worker中。一些C++子程序需要运行分钟/小时/天。_Javascript_C++_Exit_Webassembly - Fatal编程技术网

能否使用javascript停止当前运行的c++;在WebAssembly中? 我用C++编写了一个仿真,并将其编译成WASM。javascript使用ccall调用代码,这一切都发生在web worker中。一些C++子程序需要运行分钟/小时/天。

能否使用javascript停止当前运行的c++;在WebAssembly中? 我用C++编写了一个仿真,并将其编译成WASM。javascript使用ccall调用代码,这一切都发生在web worker中。一些C++子程序需要运行分钟/小时/天。,javascript,c++,exit,webassembly,Javascript,C++,Exit,Webassembly,是否有一种方法可以使用javascript通知WebAssembly模块取消当前任务?我尝试过使用stopWebAssembly()函数: void EMSCRIPTEN_KEEPALIVE stopWebAssembly(){ stop = true; } ... void simulate(){ State* state = new State(); while(!state->isTerminated()

是否有一种方法可以使用javascript通知WebAssembly模块取消当前任务?我尝试过使用stopWebAssembly()函数:

    void EMSCRIPTEN_KEEPALIVE stopWebAssembly(){
        stop = true;
    }
    ...
    void simulate(){
        State* state = new State();
        while(!state->isTerminated() && !stop){
            // Perform operation on state

        }
    }

其目的是调用stopWebAssembly()将取消模拟。但这是行不通的。还有什么我能做的吗?我能想到的最好办法是在while循环的每一千次迭代后返回js,看看javascript是否请求停止,但这似乎效率低下且笨拙。

为了通过javascript设置“stop”变量,WebAssembly将不得不产生执行——这意味着将长时间运行的计算转化为一系列可以执行的小块

将来,您可能可以使用SharedArrayBuffer作为两者之间通信的方式,但这取决于WebAssembly中即将提供的线程支持。见:


。为什么要调用
stopWebAssembly
调用
simulate
?很抱歉,这是一个打字错误。现在修好了