Обновление метки данными из потока
Я пытаюсь обновить метку в windows forms. Действие происходит в отдельном классе, но пока действие происходит в отдельном классе. Этикетка должна быть обновлена, но, похоже, что-то не работает. Пожалуйста помогите
Ниже приведен обратный код формы ProcessingUI
Что я уже пробовал:
public partial class ProcessingUI : Form { private void start_Click(object sender, EventArgs e) { StartProcessingTask(); } private void StartProcessingTask() { if (_isRunning) return; _isRunning = true; _taskToken = new CancellationTokenSource(); Task.Factory.StartNew(() => { while (_isRunning) { var data = _processing.Processdata(lblCounter, _taskToken); if (data.Success) _isRunning = false; if (_taskToken.IsCancellationRequested) return; } }); } public delegate void SetStatusCallback(string message); public void UpdateStatus(string message) { if (this.lblCounter.InvokeRequired) { this.Invoke(new SetStatusCallback(UpdateStatus), message); } else this.lblCounter.Text = message; } }
Тогда вот отдельный класс, который имеет действие, в основном его просто обновление. Теперь при обновлении я просто хочу передать запись, которая обновляется. Поэтому я вызываю метод из формы и использую его в этом классе.
public class Processing { public Results Processdata(CancellationTokenSource taskToken) { foreach (var record in dataCases) { //Doing other things here like updating new ProcessingUI().UpdateStatus(record.RequestReference);//This is the method I am calling from the form. } } }