我最近对 Windows 中的 Fibers 很感兴趣,但我很难使用它。该文档涉及函数定义和一些示例,但我仍然不清楚一些东西。我看到CreateFiber
定义被定义为:
LPVOID CreateFiber(
SIZE_T dwStackSize,
LPFIBER_START_ROUTINE lpStartAddress,
LPVOID lpParameter
);
因此,我们指定堆栈大小、纤程的函数以及可能的函数参数。现在,我的问题是:
1)一旦创建了纤程,我假设提供的功能执行不会立即开始,对吗?我相信需要先打电话ConvertThreadToFiber
。但是还有其他需要做的事情吗?我的意思是在最简单的情况下,定义、启动、运行和删除一个简单的纤程是什么样子的?
2)是否有可能以某种方式检查我们是否真的在光纤中?我的意思是 Fiber 是否在应用程序的其他部分执行?如果是,如何?
3)是否有可能在我们希望的任何时刻获取光纤堆栈的内存位置和光纤堆栈的实际内容?如果是,如何?