app.UseMvc(routes => {
routes.MapRoute("default",
"{controller}/{action}",
new { controller = "Home", action = "Index" });
});Thread threads = new Thread(func);delegate void ParameterizedThreadStart(object obj); // если передается параметр
delegate void ThreadStart(); // если не передаетсяDictionary<string, Action> funcs;Thread threads = new Thread(funcs["имя функции"]);// один раз инициализировали
var tcpListener = new TcpListener(IPAddress.Any, 8090);
tcpListener.Start();
tcpListener.BeginAcceptTcpClient(OnAcceptTCPClient, null); // Начали ждать коннектов
// На коннект клиента
private void OnAcceptTCPClient(IAsyncResult ar)
{
var client = tcpListener.EndAcceptTcpClient(ar);
new ClientReceiver(client); // Здесь будем асинхронно получать данные от клиентов.
lock (clients)
clients.Add(client); // сохранили для отправок
// начинаем ждать новых коннектов
tcpListener.BeginAcceptTcpClient(OnAcceptTCPClient, null);
}
ClientReceiver(TcpClient tcpClient) {
buffer = new byte[READ_BUFFER_SIZE];
stream = tcpClient.GetStream();
asyncResult = stream.BeginRead(buffer, 0, READ_BUFFER_SIZE, ReadStreamCallback, null);
}
// когда данные пришли
private void ReadStreamCallback(IAsyncResult ar)
{
int readed;
readed = stream.EndRead(ar);
AddData(buffer, readed); // обрабатываем, что получили
// запускаем новое ожидание
asyncResult = stream.BeginRead(buffer, 0, READ_BUFFER_SIZE, ReadStreamCallback, null);
} <TextBox Text="{Binding UserName, UpdateSourceTrigger=PropertyChanged}" />