использовать .Net UdpClient в многопоточной среде

У меня есть экземпляр класса (давайте назовем его A), который обслуживает некоторые потоки, этот экземпляр только отправляет пакеты UDP через класс UdpClient. Он инициализирует UdpClient в своем конструкторе и служит только для отправки пакетов.

Это выглядит примерно так:

public class A{

private UdpClient m_Client;
public class A(string host, int port){

    m_Client = new UdpClient(host, port);
}

public void Send(string dataToSend){

 var data= encoding.GetBytes(dataToSend);
 client.BeginSend(data, data.Length, null, null);
}

}

Мои вопросы:

Я знаю, что UdpClient неt Потокобезопасный (согласно документации MSDN), как лучше всего поддерживать многопоточность без использования механизма блокировки?

На каждую отправку создать новый экземпляр UdpClient? (просто используйте локальную переменную UdpClient). спектакль?

Использовать ThreadLocal для UdpClient? а как насчет утилизации UdpClient в этой ситуации?

Любое другое решение?

Ответы на вопрос(2)

Ваш ответ на вопрос