dll中的xmlrpc服务器,向自己发送信号?

时间:2010-12-28 11:54:34

标签: c++ c visual-c++ dll

我正在编写一些dll(在MSVC ++ 2008中的Windows上),它提供了一些xmlrpc服务器的功能。要实现xmlrpc服务器,我使用的是xmlrpc-c库。

我可以用一些不同的方式启动xmlrpc服务器。更有趣的是:

  • run method - 这将永远运行xmlrpc服务器,因此在服务器未终止之前,dll无法控制。
  • runOnce method - 这将仅运行xmlrpc服务器来处理一个RPC。如果没有请求,它将等待。

我无法长时间控制dll。我需要处理一些RPC并将控制权交还给使用dll的程序。当dll再次获得控制权时,处理下一个RPC。

runOnce看起来不错。但是有可能没有RPC可以处理,它将等待一个。这是不可接受的。

还有一个例外:

  

runOnce中止等待a   连接请求和返回   如果进程收到一个,立即   信号。请注意,除非你有   该信号的处理程序,即信号   可能会杀死整个过程,   所以建立一个信号处理程序 - 甚至一个   什么也不做 - 如果你愿意的话   利用这个。但在Xmlrpc-c 1.06之前   (2006年6月),信号没有影响 -   没有办法让runOnce中止   等待和返回。

我可以使用它作为解决方法go get control to dll吗?是否可以从dll向自己发送信号?它在Windows上如何工作?

或许这个问题有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

Windows中不存在信号(使Xmlrpc-c库调用提前中止的那种信号)。

最佳解决方案是为服务器创建新线程。