我的.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