我不确定标题听起来是否正确,所以我将在这里给出更多解释。我将从头开始:)
我正在使用 c# 和 .net 进行开发。
我有一个应用程序向一些肥皂网络服务发出请求,对于每个用户请求,它都会产生 3 到 10 个网络服务请求,它们都应该运行异步以一次性完成,所以我使用网络服务的异步方法生成参考,然后等待回调结果。但似乎它为我进行的每个异步调用启动一个线程(或从池中获取它),所以如果我有 10 个客户端,我必须生成 30 到 100 个线程,即使对于我的 16 核服务器来说听起来也很糟糕 :) 所以我想用我自己的替换低级传输实现,它使用非阻塞套接字,并且可以处理至少 50 个套接字在一个线程中并行运行而开销不大。但我实际上不知道把我的覆盖放在哪里最好。
我分析System.Web.Services.Protocols.SoapHttpClientProtocol
了类,发现它有一些我实际上可以使用的 GetWebRequest 方法。如果我能以某种方式中断它创建的对象并从那里获取包含所有标头和正文的 http 请求,然后使用我自己的套接字发送它。
任何想法使用什么方法?或者也许我可以使用框架中内置的东西?