我的.NET CF 3.5 Windows Mobile 6.5应用程序有一个奇怪的情况。 我有2个主题。windows mobile 6.5 .net CF HttpWebRequest到2个不同线程的相同URL - 错误
在第一个线程我以下:
try
{
String url = "http://myserverurl";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
_currentRequest = request;
request.Timeout = 10000;
response = (HttpWebResponse)request.GetResponse();
ConnectionStatus connStatus = response.StatusCode == HttpStatusCode.OK;
response.Close();
}
catch (Exception e)
{
//log e
}
finally
{
}
在2n个线程调用通过WebService的参考产生基于SoapHttpClientProtocol类的WebService。
soapClient.Url = "http://myserverurl";
soapClient.MethodOnWebService();
在这两种情况下,网址是一样的。第一个线程用于连接检查目的。它定期执行WebRequest来检查服务器是否可用并显示连接状态(未在代码中显示)。第二个线程在同一个服务器(url)上调用WebService。我观察到,当一个线程执行WebRequest时,第二个线程在执行Web方法时被阻塞或事件超时。他们都看起来互相干扰。为什么?我想知道如果Windows移动网络堆栈只是为两个线程创建一个套接字连接,如果它意识到两者都转到相同的目标IP:端口?关于会话呢?在桌面Windows上,我希望创建2个会话,并且客户端计算机上至少有2个套接字。 有谁对Windows Mobile(或.NET CF)如何管理连接和套接字重用有任何提示?
Regards
谢谢。这是问题。除了我当然可以增加连接限制的事实之外,我按照重组我的应用程序的方式将连接检查和Web服务连接放在一个线程中。谢谢! – cubesoft 2011-02-21 22:35:59