1

を使用してクライアントサーバーアプリケーションを作成しSystem.Net.Sockets.TcpListener tcpl、サーバーで次のコードを使用してアプリケーションの応答を維持しています。System.Net.Sockets.NetworkStream nsSystem.Net.Sockets.TcpClient echoserver;

while (!tcpl.Pending())
   Application.DoEvents();
echoserver = tcpl.AcceptTcpClient();
   ns = echoserver.GetStream();
using (MemoryStream ms = new MemoryStream())
{
   while ((i = ns.Read(recivedbytes, 0, recivedbytes.Length)) != 0)
   {
        ms.Write(recivedbytes, 0, i);
   }
}

クライアントを待っていますが、プロセッサに負荷がかかりすぎます。プロセッサの負荷を増やさずにこれを行う他のロジックはありますか?

4

1 に答える 1

2

while (!tcpl.Pending())
   Application.DoEvents();
echoserver = tcpl.AcceptTcpClient();

-ステートメントは、ブロッキングメソッドwhileであるため、実際には冗長です。AcceptTcpCLient()UIの応答性を高めたい場合は、のスレッドを作成し、着信要求TcpListenerを使用してそこで待機します。AcceptTcpClient()

詳細については、 MSDNを参照してください。

于 2013-03-10T14:52:12.977 に答える