@oldhowl

MVP как правильно вернуть переменную во ViewModel прогрессбара?

Отделил форму от логики, по принципу MVP. Хочу вернуть значение из логики в прогрессбар.
Жму первый раз - не срабатывает.
Второй раз - срабатывает не до конца (умирает поток?)
Думал переменную отдельно инициализировать(temp), что бы к i области памяти не обращаться, не помогло.
Делаю 10мс - срабатывает (но не уверен что правильно)
Что я делаю не так?

Метод в презентере


public void Start ()
{
model.Cicle();
SetValProg();

}

public void SetValProg()
{
form.UpdateView(model.progressVal);
}


Метод во вью

public void UpdateView(int progressBarVal)
{
progressBar1.Value = progressBarVal;
}


9a761cf1a63843f3b64926a2b4eaf4d4.gif
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 2
@tex0
Вот тут
А ещё кури в сторону:
- InvokeRequired
- SynchronizationContext
Это вопрос доступа к элементам управления из стороннего потока.
Ответ написан
Комментировать
Nipheris
@Nipheris Куратор тега C#
Посмотреть бы на код, который регулярно считывает progressVal из модели и пихает в прогресс-бар. Иными словами, SetValProg откуда еще вызывается, кроме как при старте? Лично я пока не вижу никакой проблемы с потоками, про которую говорит tex0, т.к. из другого потока устанавливается только интовое поле у Model.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы