UDPを使用して、待ち時間の少ない一連のデータを別のデバイスに送信します。C#UdpClient.Send getの速度が遅く、遅い
これは、問題を再現短い抜粋である:
private void Form1_Shown(object sender, EventArgs e)
{
UdpClient udpClient = new UdpClient(9000);
IPEndPoint endPoint = new IPEndPoint(IPAddress.Broadcast, 7000);
new Thread(() =>
{
Stopwatch stopwatch = new Stopwatch();
byte[] buffer = new byte[1922];
while (true)
{
stopwatch.Start();
udpClient.Send(buffer, buffer.Length, endPoint);
stopwatch.Stop();
Console.WriteLine("Sending took " + stopwatch.ElapsedMilliseconds + "ms"); // stopwatch.ElapsedMilliseconds gets higher and higher
Thread.Sleep(10);
}
}).Start();
}
バッファは、(ループ内で)同じサイズ毎回を有するパケットは、通常... 10ms毎に送信されます。
しかし、 300msごとに1ミリ秒かかるため、短時間でパケットを送信するのに1分かかることがあります。
問題は何ですか?どのように解決するのですか?
あなたの質問は、特定のではなく、あなたのコード例に提供されたもの以外の手段によって引き起こされることが一般的な例懸念しているので、質問は答えることが広すぎるかのように私には見えます。詳細をご記入ください。 – Lu4
投稿を編集しましたが、問題を再現するコードスニペットがあります。 – Skycoder