2016-05-23 11 views
0

私の関数ではawaitメソッドを、TcpClientではAcceptAsyncを使用しています。AcceptAsyncと他のメソッド(TcpClient)の違い

(れるtcpClientクライアントは= listener.AcceptTcpClientAsync()を待つ;)

私の質問は:

は、私はそれに問題があるのでしょうか?フォーラムではTasksやBeginAccept + CallBackメソッドを使うことができますが、私のコードはこれで完璧に動作します。

答えのThnx!

+1

これらは異なるコードのスタイルです。私はUIアプリケーションのためのタスクと非UIアプリケーションのための非同期を好む。 –

+0

これは非UIアプリです。私はクライアントが常に待っているコメントを読んで、私は将来それについて問題を抱えています。だから私はそれを変更する必要がありますか?どう思いますか? –

+0

私は、タスクはバックで非同期を使用すると思います。だから大きな違いはありません。クライアント数が限られている場合(max 5など)、接続ごとにスレッドを使用します。それ以外の場合はasyncを使用します。 –

答えて

1

私はそれに問題がありますか?

いいえ、私は、しかし、強くあなたが可能すべてので場合SignalRを使用することをお勧めします。生のソケットには数多くの落とし穴があり、正しく使用するためには非常に複雑なコードが必要です。

私はTasksまたはBeginAccept + CallBackメソッドを使用することができますが、私のコードは今すぐ完全に動作します。

あなたのコードはすでにタスクを使用しています。具体的には、Task-based Asynchronous Pattern (TAP)を使用しています。 BeginAccept/EndAcceptスタイルはAsynchronous Programming Model (APM)と呼ばれます。可能であれば、使用する方が簡単なため、APMよりもTAPを優先してください。

+0

あなたの答えをありがとう! –

関連する問題