У меня есть форма, на неё несколько lables они служат для индикации, когда программа работает, она считывает данные из базы данных, которые в свою очередь обновляются, и мне нужно чтобы эти lables тоже обновлялись, я хотел запустить Thread thread = new Thread(UpdateMeth); Но эта конструкция выдаёт ошибку "A field initializer cannot reference the non-static field, method, or property" Подскажите как сделать так чтобы метод UpdateMeth() выполнялся постоянно?
Thread thread = new Thread(UpdateMeth);
thread.Start();
List<int> goldC { get; set; }
private void btnUpdate_Click(object sender, RoutedEventArgs e)
{
UpdateMeth();
}
private void UpdateMeth()
{
goldC = baseTimerLogic.Check(userController.CurrentUser);
lblPopulationCount.Content = goldC[0].ToString();
lblFood.Content = goldC[1].ToString();
lblRock.Content = goldC[2].ToString();
lblWood.Content = goldC[3].ToString();
lblIron.Content = goldC[4].ToString();
lblCoal.Content = goldC[5].ToString();
lblGold.Content = goldC[6].ToString();
}
Thread? И код нужно писать в методах, а не в классе. – aepot Mar 31 '21 at 20:48// ... что-то сделать, и делаете 2 кнопки "Старт" и "Стоп", из обработчика одной вызываетеStartLoop, из другойStopLoop. – aepot Mar 31 '21 at 20:59// ... ex.MessageпишетеMessageBox.Show(ex.Message), чтобы в случае чего увидеть ошибку, если возникнет. – aepot Mar 31 '21 at 21:09List<int> goldCу вас объявлен как свойство, для чего? Уберите свойство и объявите список прямо там, где у вас код, в методеList<int> goldC = .... В многопоточном и асинхронном программировании надо избегать использования глобальных переменных (полей и свойств) там, где возможно. – aepot Mar 31 '21 at 21:12