代码之家  ›  专栏  ›  技术社区  ›  novicegis

是否可以在gsoap中的单独线程中执行函数?

  •  0
  • novicegis  · 技术社区  · 12 年前

    现在有了由c++编写的服务器(gsoap)。我有c#应用程序(c#4.0,winforms)。我从这个服务生成wsdl。所以我可以调用我的应用程序中的一些功能。

    但这些功能的持续时间超过了一个小时。我认为,最好的方法是:

    1) 我在应用程序的线程中调用这个函数。

    2) 另一个人在其应用程序中的单独线程中调用此函数。

    但这个人告诉我,这是不可能的。她说,“在gsoap中没有线程这样的功能”

    这是真的吗?我不明白为什么这是不可能的。。

    2 回复  |  直到 12 年前
        1
  •  1
  •   Community CDub    8 年前

    1) 我在应用程序的线程中调用这个函数。

    2) 另一个人在其应用程序中的单独线程中调用此函数。

    如果你所说的应用程序是指webservice客户端应用程序,那么简单的答案是否定的,因为它本身不会导致gsoap处理多个线程上的请求。gsoap不提供任何开箱即用的多线程功能。在客户端应用程序中启动单独的线程不会在(gsoap)服务器上启动相应的线程。

    不过,您认为可以使用多个线程来处理来自多个客户端的请求的预感是正确的。然而,您需要在gsoap应用程序中自己创建和管理这些线程。你可能会发现这个讨论很有帮助- gSOAP Multithreading

        2
  •  1
  •   Henno    12 年前

    当您接到持续一个小时或更长时间的服务电话时。。。修改服务接口不是更好吗? 您可以返回某种类型的“id”(整数,或者GUID)。 打个电话 IsFinished(id) ,返回当前状态。 当IsFinished返回true时,用户可以通过 GetResult(id) 呼叫

    这是接口方面的更多工作,但可能会使服务器更易于维护。而且客户端更干净。