ソケットをすぐに接続しようとするのを止める方法はありますか?ソケットが接続を試みると、接続のタイムアウトに一定の時間がかかるようです。ユーザーが接続しようとしているボタンをクリックして閉じようとすると、他のスレッドはsocket.Connect()メソッドでブロックされているため、アプリケーションを有効にしています。すぐに接続を停止しますか?
別のスレッドからクローズを呼び出そうとしました。例外は変更されますが、タイムアウトはまだ存在します。タイムアウトを待たなければならないのは面倒です。
ソケットをすぐに接続しようとするのを止める方法はありますか?ソケットが接続を試みると、接続のタイムアウトに一定の時間がかかるようです。ユーザーが接続しようとしているボタンをクリックして閉じようとすると、他のスレッドはsocket.Connect()メソッドでブロックされているため、アプリケーションを有効にしています。すぐに接続を停止しますか?
別のスレッドからクローズを呼び出そうとしました。例外は変更されますが、タイムアウトはまだ存在します。タイムアウトを待たなければならないのは面倒です。
非同期メソッドBeginConnectをEndConnectと組み合わせて使用すると、メインスレッドをブロックしないようにすることができます。タイムアウトが問題になる限り、その価値を減らそうとするかもしれません。
なぜ非同期ソケットを使用しないのですか?あなたがそれをもう必要としないならば、あなたはそれを閉じ、あなたのコールバックに後で戻ってくるものはすべて無視します。私はあなたが呼び出す必要があるBeginConnect
であることを期待しています。
@ Darin。私はこれを見ているが、接続の試みを止める方法がわからない。接続の停止と接続の競合状態はありませんか? – uriDium
@uriDium、あなた*接続を停止することはできません。これは、待機が別のスレッドで実行されるということだけです。 'EndConnect'メソッドを呼び出すときにタイムアウト例外が発生するので、正しく処理することを覚えておいてください。 –
@ダーリン。 EndConnectがブロックされているのがわかります。だから私はまだ待たなければならない?この待っていることから逃げる方法はありませんか? – uriDium