Reputation: 123
I have
var H: array of THandle;
then in a loop I create multiple threads, and assign thread handles to the elements of H, and then wait on them. Passing @H[0] as the 2nd parameter to WFMO below works.
WaitForMultipleObjects(Length(H), @H[0], True, INFINITE) <-- Works
But passing @H as below Fails with WAIT_FAILED. GetLastError returns "Invalid Handle".
WaitForMultipleObjects(Length(H), @H, True, INFINITE) <--- Fails.
Why is @H different from @H[0] ?
Upvotes: 8
Views: 303
Reputation: 877
H
is already a pointer and it points to the first element, so@H[0]
is the same as H
- pointer to the first element@H
is equals to @@H[0]
- pointer to pointer to the first element.Upvotes: 8