我有
var H: array of THandle;
然后我在循环中创建多个线程,并将线程句柄分配给H的元素,最后等待它们完成。在下面的 WFMO 函数中将 @H[0] 作为第二个参数传递是有效的。
WaitForMultipleObjects(Length(H), @H[0], True, INFINITE) <-- Works
但是像下面这样传递@H会导致失败并返回WAIT_FAILED。GetLastError会返回“无效句柄”错误。
WaitForMultipleObjects(Length(H), @H, True, INFINITE) <--- Fails.
为什么@H和@H[0]不同?
H: array[0..10] of THandle
,那么@H和@H[0]应该是相同的,我想我可以检查一下。 - NaniH
是一个静态数组,那么你需要通过@
运算符获取它的地址,然后@H
等于@H[0]
。 - zed