Я сейчас пытаюсь принимать входящие соединения через пул потоков, и все это работает, но возникает следующий вопрос:
Что, если я получу новое соединение до того, как пул потоков обработает предыдущее. Объект передается функции, в данном случае клиент, заменен новым соединением, или он запомнит оба?
причина, по которой я думаю, что он забывает первого клиента, заключается в том, что переданная переменная - это просто ссылка?
Код выглядит так:
public static void Initialize()
{
socket.Start();
System.Threading.Thread newConnection = new System.Threading.Thread(() =>
{
while (isOnline)
{
System.Net.Sockets.TcpClient client = socket.AcceptTcpClient();
System.Threading.ThreadPool.QueueUserWorkItem(HandleNewClient, client);
}
})
{
IsBackground = true,
Name = "newConnection",
Priority = System.Threading.ThreadPriority.Highest
};
}
Надеюсь, это прояснило вам, ребята. Заранее благодарим за внимание.