@H和@H [0]之间的区别

时间:2019-11-30 19:59:51

标签: pointers delphi waitformultipleobjects

我有

 var H: array of THandle;

然后在循环中创建多个线程,并将线程句柄分配给H的元素,然后等待它们。将@H [0]作为第二个参数传递给下面的WFMO可行。

WaitForMultipleObjects(Length(H), @H[0], True, INFINITE) <-- Works

但是如下所示传递@H失败,并显示WAIT_FAILED。 GetLastError返回“无效的句柄”。

WaitForMultipleObjects(Length(H), @H, True, INFINITE)  <--- Fails.

为什么@H与@H [0]不同?

1 个答案:

答案 0 :(得分:8)

  1. 由于它是一个动态数组,H已经是一个指针,并且指向第一个元素,所以
  2. @H[0]H相同-指向第一个元素的指针
  3. 现在@H等于@@H[0]-指向第一个元素的指针。