Асинхронный метод TcpClient

Мне нужно получить несколько советов, какой метод лучше для создания асинхронного соединения tcpClient. Мое приложение открывает tcpClient, пишет сообщение и ждет, чтобы прочитать ответ. Метод 1: я создал асинхронную задачу для всех функций tcpClient.

await Task.Run(() =>
{
    using (var client = new TcpClient(terminalIP, terminalPort))
    using (var stream = client.GetStream())
    {
       var message = "my message";
       var data = Encoding.ASCII.GetBytes(string.Format(message);
       stream.Write(data, 0, data.Length);

       var readingByte = new byte[256];
       var sessionBytesRead = stream.Read(readingByte, 0, readingByte.Length);
       var sessionTxt = Encoding.ASCII.GetString(readingByte, 0, sessionBytesRead);
     }
});

Метод 2, я использую асинхронность только для открытия, записи и чтения

using (var client = new TcpClient())
{
   await client.ConnectAsync(terminalIP, terminalPort);

   using (var stream = client.GetStream())
   {
       var message = "my message";
       var data = Encoding.ASCII.GetBytes(message);
       await stream.WriteAsync(data, 0, data.Length);

       var readingByte = new byte[256];
       var sessionBytesRead = await stream.ReadAsync(readingByte, 0, readingByte.Length);
       var sessionTxt = Encoding.ASCII.GetString(readingByte, 0, sessionBytesRead);
   }
}

Какой метод лучше и почему? Также, если есть какой-либо другой более эффективный способ, пожалуйста, дайте мне знать.


person Δημήτρης Χριστοφορίδης    schedule 18.04.2020    source источник
comment
Если у вас только одно соединение, это не имеет значения. Сеть намного медленнее, чем ваша программа. Если вам нужно большое количество подключений, асинхронный ввод-вывод в .NET — единственный возможный подход. См. отмеченные дубликаты. См. также более общие вопросы и ответы, такие как для реализации клиентского серверного приложения tcp"> stackoverflow.com/questions/26450254/, stackoverflow.com/questions/31904039/ и stackoverflow.com/questions/7104293/   -  person Peter Duniho    schedule 18.04.2020
comment
Спасибо, Питер, пост, похоже, не отвечает на мой вопрос.   -  person Δημήτρης Χριστοφορίδης    schedule 18.04.2020