2

我使用 winapi ReadFileEx 异步加载 30 兆字节数组,天哪,它工作得非常好 - 我已经免费获得了整个阅读,我的计算没有减慢只是数组在后台神奇地加载并且游戏帧没有减慢(虽然我使用 1 个核心电脑)

但问题是这样的——据我所知,收到“阅读完成”调用我应该让我的线程休眠,我不想这样做,我只是从我的主线程中触发 load_asynchronusly 然后想知道它什么时候完成(现在所有负载都以这种方式工作,我只是在完成后没有收到我的回调调用)

我可以及时测试加载数组的内容并检查例如最后一个带有“检查这是否被覆盖”的内容是否被覆盖然后我会知道但这可能不是那么安全(?)有什么方法可以确定它何时完成以一种简单的方式接近那个?

4

1 回答 1

3

你有几个选择:

  1. 调用GetOverlappedResult以异步测试操作是否已完成。
  2. 通过一个FileIOCompletionRoutine. 这将在读取完成时执行。
  3. OVERLAPPED在结构中使用事件。读取完成时会发出信号。
于 2013-03-31T09:20:57.423 回答