【发布时间】:2011-03-26 10:59:46
【问题描述】:
假设 GetLastError(和变体)是每个线程还是每个进程是否正确?如果它是每个进程的问题在多线程应用程序中有些明显,因为无法保证在失败的调用和 GetLastError 之间没有进行其他 Win32 调用。有时 GetLastError 的值很重要。
例如,如果您使用 IO 完成端口,AcceptEx 将返回 FALSE(失败)。 WSAGetLastError(类似于 GetLastError)将返回 ERROR_IO_PENDING 以通知您它已挂起并且失败不是由于其他原因。问题是数十个其他调用可能在进行中并覆盖此值。
这些调用是特定于线程还是特定于进程?如果特定于流程,那么您如何正确处理呢?
【问题讨论】:
标签: c++ c multithreading winapi