PostThreadMessage将GetLastError设置为1444

时间:2010-08-12 05:37:05

标签: c++ multithreading winapi

PostThreadMessage我的线程ID是正确的,但我收到错误1444(“无效的线程标识符。”)。

任何人都知道如何修复它?

1 个答案:

答案 0 :(得分:3)

操作系统是线程ID是否有效的权限,因此如果它告诉您您的ID无效,那么您的ID可能无效。您必须信任错误代码,直到您可以证明它们是错的,否则根本就没有用它来检查它们。在责怪操作系统之前,请确保排除所有其他可能性。以下是一些例子:

  • 也许您使用了线程 handle
  • 也许线程已经完成了。
  • 可能首先没有成功创建线程。确保从CreateThread检查返回值。
  • 也许该主题属于在不同桌面上运行的进程。
  • 也许线程没有消息队列。例如,线程可以通过调用GetMessage或PeekMessage为自己创建消息队列。