我如何决定是否应该在TService应用程序中使用TServiceThread或TThread?

时间:2014-01-09 02:02:30

标签: multithreading delphi service

在阅读有关如何创建服务应用程序的一些材料(如this one)时,为每个服务请求生成一个单独的工作线程(因为我的服务请求可能需要冗长的数据库操作),我来了跨越对TThread的引用和对TServiceThread的其他引用。现在我很困惑。 我应该使用哪一个?和为什么?如果你想要超级有帮助,想要分享你在如何上的专业知识,或者你知道特别好的链接(强调< i>该链接另一侧的内容质量然后这将有助于解决该提问者的情况。不管怎样,谢谢。

1 个答案:

答案 0 :(得分:7)

TServiceThread是实现主服务线程的线程。它仅用于此目的,您不应从TServiceThread派生您的工作线程。对于工作线程,派生自TThread

documentation可能有点朦胧,但确实指向了正确的方向:

  

TServiceThread表示与特定关联的线程   服务(TService对象)。

     

TServiceThread是与服务关联的线程。每项服务   application有一个或多个服务对象,每个服务对象都有自己的对象   专用线程。 TServiceThread实例代表那些线程。

并查看TServiceThread.Execute的实施情况。它包含实现服务主线程所需的所有逻辑。这显然不适合工人线程。

相关问题