今天,我看到了这样的代码:
void Foo()
{
MyMsgStruct myMsg;
/* omission for simplicity */
/* send to update thread */
PostThreadMessage(myThreadId, myMessage, (WPARAM)myMsg, NULL);
}
Foo()
当从同一个线程调用时会发生什么myThreadId
,即从应该是目标线程的同一个线程?这是性能问题还是只是糟糕的编写代码或两者兼而有之?
我相信它可能会影响性能,因为我相信它会将消息排队到线程的队列中,而不是仅仅做它应该做的事情,因此会稍微减慢程序的速度。
线程安全不是我对这个问题的关注。