因为它们两个是有区别的
SendMessage发送消息并挂起当前线程直到消息被处理才继续向下执行
PostMessage投递消息,不管消息是否被响应,线程继续运行
也就是说,用SendMessage可以保证数据的边界,而PostMessage却不能
SendMessage发送消息并挂起当前线程直到消息被处理才继续向下执行
PostMessage投递消息,不管消息是否被响应,线程继续运行
也就是说,用SendMessage可以保证数据的边界,而PostMessage却不能
PostMessage投递消息是发到线程的消息队列中去,不会立即被响应。
而且系统会根据消息的优先级调整队列,一些优先度低的消息可能永远得不到处理。
所以,postmessage只用于发送一些不需要同步的消息。
但是在线程之间Send消息,必须防止阻塞,比如线程1向线程2Send一个消息,处理这个消息时线程2又向线程1Send一个消息,这样两个线程就都被挂起了,消息永远不会被响应。