gpt4 book ai didi

协程:如何判断 Windows Fiber 是否已完成执行?

转载 作者:行者123 更新时间:2023-11-30 17:42:11 30 4
gpt4 key购买 nike

我有以下函数,用作 Windows Fiber 的入口点。

void foo(void*) {
for(int i =0; i < 10; ++i) { doStuff(); }
}

现在我在主程序中的 for 循环中调用 SwitchToFiber ;像下面这样。

int main() {
... create the fiber and stuff

for (int i = 0; i < 50; ++i) {
SwitchToFiber(foo_fiber_ptr);
// how do I tell if foo has already finished execution?
// (without passing in a state variable to communicate.)
if (someCondition) { break; }
}

... do stuff
}

所以我的问题是:如何判断 foo 是否已经完成执行?(无需传入状态变量或声明全局状态变量进行通信。)

最佳答案

声明一个全局变量。执行foo函数后,改变foo中全局变量的状态。

main中检查状态更改。如果全局变量的状态改变,则表示foo已经被执行了。

关于协程:如何判断 Windows Fiber 是否已完成执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20769636/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com