Имеется сервер класса TcpListener. Он принимает входящие подключения методом BeginAcceptTcpClient (AsyncCallback, Object).
Код написан на основе примера с MSDN.
public static ManualResetEvent tcpClientConnected =
new ManualResetEvent(false);
public static void DoBeginAcceptTcpClient(TcpListener
listener)
{
while(true)
{
tcpClientConnected.Reset();
Console.WriteLine("Waiting for a connection...");
listener.BeginAcceptTcpClient(
new AsyncCallback(DoAcceptTcpClientCallback),
listener);
tcpClientConnected.WaitOne();
}
}
public static void DoAcceptTcpClientCallback(IAsyncResult ar)
{
TcpListener listener = (TcpListener) ar.AsyncState;
TcpClient client = listener.EndAcceptTcpClient(ar);
Console.WriteLine("Client connected completed");
tcpClientConnected.Set();
while(thue)
{
//Прием сообщений от клиента
}
}
Проблема заключается в том, что метод DoAcceptTcpClientCallback(IAsyncResult ar) иногда начинает выполняться в текущем потоке, а не во вновь созданном как это обычно бывает, и тем самым блокирует его и из-за чего прием следующих подключений невозможен. Закономерность и причины проследить не удалось. В чем может быть дело?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нашёл на просторах StackOverflow пример как читать данные из excelНо вылетают ошибки
Когда задан Padding для параграфа, то его формат передается следующей строке, после нажатия EnterИ убрать его получается только вручную