Как бесконечно выводить текст в TextBlock
Проблема заключается в том, что если просто использовать такой код:
while (true)
{
TextStatus.Text += "Connect: Stable, Content: Actual...";
Task.Delay(1000).Wait();
}
То window не открывается и ждет пока закончится цикл.
Если сделать код таким:
Task.Run(() =>
{
while (true)
{
TextStatus.Text += "Connect: Stable, Content: Actual...";
Task.Delay(1000).Wait();
}
});
То программа падает в ошибку "Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток".
А если сделать код таким:
Task.Run(() =>
{
Dispatcher.Invoke(() =>
{
while (true)
{
TextStatus.Text += "Connect: Stable, Content: Actual...";
Task.Delay(1000).Wait();
}
});
});
То window открывается и просто зависает ждет пока закончится цикл.
Я хочу ПРОСТО выводить информацию о состоянии каждый раз с новой строки каждую секунду. Есть ли какой-нибудь способ.
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
А если сделать код таким, то всё будет работать без зависаний.
while (true)
{
TextStatus.Text += "Connect: Stable, Content: Actual...";
await Task.Delay(1000);
}
Документация: Асинхронное программирование с операторами async и await