У меня есть особая проблема с обновлением TextBlock с изменением значений (которое в конечном итоге будет передаваться по сети). Эта проблема аналогична той, с которой сталкиваются другие участники этого форума, за исключением того, что приведенное ниже тестовое решение работает изначально (т. Е. Таймер успешно обновляет textBlock1.text, который затем отображается правильно), но затем завершается ошибкой после определенного числа итераций (обычно между 200 и 300). Я предполагаю, что я делаю что-то не так с тем, как я обращаюсь с потоком.
Я новичок в C #, .Net и многопоточности, поэтому любые советы будут с благодарностью.
namespace TestWPF_WorkerThreads
{
MainWindow : Window
{
private int counter = 0;
private string counterText="";
public MainWindow()
{
InitializeComponent();
Timer myTimer = new Timer(Work, counterText, 1000, 100);
}
void Work(Object message)
{
counter++;
counterText = counter.ToString();
string temp = message.ToString();
temp = temp + counterText;
Thread.Sleep(100);
UpdateMessage(temp);
}
void UpdateMessage(string msg)
{
Action action = () => textBlock1.Text = msg;
Dispatcher.Invoke(action);
}
}
}