是否可以在 gsoap 中的单独线程中执行函数
本文关键字:单独 线程 执行 函数 是否 gsoap | 更新日期: 2023-09-27 18:36:18
>现在有C++编写的服务器(gsoap)。我有c#应用程序(c# 4.0,winforms)。我从这个服务生成 wsdl。所以我可以在我的应用程序中调用一些函数。
但是此功能的持续时间超过小时。我认为,最好的方法是:
1)我在应用程序中的线程中调用此函数。
2) 另一个人在其应用程序的单独线程中调用此函数。
但是这个人告诉我,这是不可能的。她说,"在gsoap中没有线程这样的功能"
是真的吗?我不明白为什么这是不可能的。
1)我在应用程序中的线程中调用此函数。
2) 另一个人在其应用程序的单独线程中调用此函数。
如果您所说的应用程序是指 Web 服务客户端应用程序,则简短的答案是否定的,这本身不会导致 gsoap 处理多个线程上的请求。 Gsoap 不提供任何开箱即用的多线程功能。在客户端应用程序中启动单独的线程不会在 (gsoap) 服务器上启动相应的线程。
尽管您可以使用多个线程来处理来自多个客户端的请求,但您的预感是正确的。但是,您需要在 gsoap 应用程序中自己创建和管理这些线程。您可能会发现此讨论很有帮助 - gSOAP 多线程
当您的服务呼叫运行了一个小时或更长时间时...修改服务接口不是更好吗?您可以返回某种类型的"id"(整数或 GUID)。并有一个调用IsFinished(id)
,返回当前状态。当 IsFinished 返回 true 时,用户可以通过GetResult(id)
调用检索结果。
这是接口方面的更多工作,但也许它使您的服务器更容易维护。而且它在客户端更干净。