Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите завершаются потоки c#

e о Мастер (1191), на голосовании 7 месяцев назад
Помогите пожалуйста. Я делаю WinForms чат и добавил асинхронность в код, но в отлдаке все равно пишет про завершение потоков. Еще сообщения перестали выводится в форму. Единственный плюс - перестало зависать приложение, но на этом плюсы закончились. Вот код приложения и клиента https://pastebin.com/iQtR5xn0 , https://pastebin.com/PXBSKiTG
Дополнен 8 месяцев назад
да и еще код сервера если надо https://pastebin.com/k5p5ntDf
Дополнен 8 месяцев назад
вот такое в отладке
Поток 0x2ae0 завершился с кодом 0 (0x0).
Поток 0x514c завершился с кодом 0 (0x0).
Поток 0x4ce4 завершился с кодом 0 (0x0).
Поток 0x571c завершился с кодом 0 (0x0).
Голосование за лучший ответ
Вася Пупкин Мудрец (14683) 8 месяцев назад
Ну так, каждая асинхронная задача = поток. А асинхронно выводить сообщения нужно через invoke у элемента
  await Task.Run(() => { 
textBox1.Invoke((Action)delegate { textBox1.Text = "Загрузка "; });
});
Убери await Task.Delay(500). Любые задержки портят работу приложения. Они только в исключительных ситуациях нужны. Вместо них лучше сделать проверку через текущее время
e оМастер (1191) 8 месяцев назад
я не понял немного. Каждая задача асинхронная это ОТДЕЛЬНЫЙ поток? Получается это многопоточность?
Вася Пупкин Мудрец (14683) e о, да. Либо разделяется на доступные потоки в процессоре, либо создаются виртуальные потоки. И если это представлять графически, то это будет похоже на вафлю
Похожие вопросы