當設置我的套接字進行連接時,我把這個方法封裝在try-catch塊中..是否需要調用?
如果發生套接字異常,我創建一個新的線程..睡15秒..然後調用再次連接方法,但這次是從另一個線程。我這樣做主要是爲了睡眠方法(爲了避免使用定時器重新連接)不掛斷主線程。
總之..嘗試連接時,我寫的狀態,使用的方法稱爲寫()剛剛追加文本到當前文本與之前\ n它的文本框...
因爲在失敗的連接上,我創建了一個單獨的線程來調用connect方法(它修改表單上的一個控件),我正確使用方法調用的權限?
這裏是我的代碼
private void Connect()
{
try
{
Write("Connecting...");
_ClientSocket.Connect(new IPEndPoint(IPAddress.Loopback, 2500));
Connected = true;
Write("Connected.");
_ClientSocket.BeginReceive(Buffer, 0, Buffer.Length, 0, new AsyncCallback(RecieveCallBack), null);
}
catch (SocketException ex)
{
Write("Connection Failed. Trying again in 15 Seconds...");
Connected = false;
new Thread(delegate()
{
Thread.Sleep(15000);
Invoke((MethodInvoker)delegate
{
this.Connect();
});
}).Start();
}
catch (Exception ex)
{
}
}
我只是想確保我在正確的方式
測試肩d回答你的問題。它是否在沒有調用的情況下工作?它是否適用於調用?如果答案分別爲「否」和「是」,那麼看起來你已經做了正確的事情。如果答案是肯定的,那麼你不需要調用。 – Chris
你的UI框架是什麼?我很確定這種做事方式是錯誤的,尤其是在C#5.0世界中 – Stilgar
我沒有看到你訪問WinForms的地方。也不要手動創建線程。使用例如ThreadPool.QueueUserWorkItem – stepandohnal