【发布时间】:2011-04-22 19:43:44
【问题描述】:
我已经实现了一个启动几个工作线程的 windows xp 服务应用程序。 我需要从其中一个线程将自定义消息发送回服务。 我该怎么做?
【问题讨论】:
-
您的工作线程是您的服务应用程序的一部分,因此不清楚您要做什么。我的印象是您需要在线程之间传递一些数据,这可以通过简单地保留对数据结构的引用并锁定线程安全来完成。根据您的意图,主服务线程可能更容易轮询工作线程的状态。你能提供更多细节吗?
-
我会尽力解释得更好。我的服务应用程序在其 OnStart 事件中创建了两个线程。它还创建一个对象列表(对象有自己的功能和属性)。现在,两个线程之一轮询串行端口以获取新数据,并且需要将此数据(或超时)发送到对象列表中的一个对象,但我需要在不中断其执行的情况下执行此操作。因此,当串行端口上有数据可用时,我想向主服务线程发布一条消息。这个主服务线程可以将数据发送到对象。
-
我知道一个可能的解决方案是在服务类中创建一个仅消息窗口,但我不知道该怎么做。
标签: windows multithreading delphi service message