dephi线程中postmessage报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dephi线程中postmessage报错相关的知识,希望对你有一定的参考价值。

参考技术A 其中MyId是要返回的字符串
在主窗口中使用如下代码: 先在public中加入消息函数的声明Delphi代码procedureWMTestEnd(var AMsg:TMessage);message WM_TEST_END;//消息函数 其中WM_TEST_END是自定义的消息 再在implementation写函数Delphi代码procedureTForm1.WMTestEnd(var AMsg:TMessage);vars:string;begin s:=string(Pointer(AMsg.wParam)^); Memo1.Lines.Add(s);end; 需要注意的是,如果你在线程中,一定要使用SendMessage来发送消息,如果使用PostMessage会出错。原因我想是因为 PostMessage发送消息后线程会继续执行下去,当主窗口收到这个消息并处理时,线程可能已经结束了,这时指向字符串的那个指针就会出错;而 SendMessage发送消息后会将线程挂起,直到消息处理完成后,才继续执行下面代码。

以上是关于dephi线程中postmessage报错的主要内容,如果未能解决你的问题,请参考以下文章

PostMessage 是不是可以在 GetMessage 之后使工作线程中的变量更改在 UI 线程中可见?

线程间通过PostMessage通信

SendMessage和PostMessage的异同

在 Qt 中寻找 PostMessage 功能

mfc c++ 将带有 postmessage 的自定义用户消息从工作线程发送到主 ui 线程

是否有可在 Java/Android 中使用的 PostMessage 等效项?