我有
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]不同?
答案 0 :(得分:8)
H
已经是一个指针,并且指向第一个元素,所以@H[0]
与H
相同-指向第一个元素的指针@H
等于@@H[0]
-指向第一个元素的指针。