Как вернуть представление, если прогресс изменяется при использовании Backgroundworker в .NET? - PullRequest
0 голосов
/ 25 марта 2019

Я обновляю значения в модели, используя do work, а затем пытаюсь вернуть представление с новыми значениями из контроллера, где я использую фоновый рабочий.Я знаю, что мне нужно сделать это в процессе изменения, однако, так как я использую backgroundworker на .NET MVC, я не уверен, что могу вернуть вид, как показано ниже:

private void m_oWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            nfcSer = new MainWindow();
            while (!e.Cancel)
            {
                Thread.Sleep(1000);
                for (int i = 0; i < 50;)
                {
                    if (nfcSer.connectCard())
                    {

                        //this updates the student's attendance status to true
                        StudentsController.setAttendStudent(nfcSer.getcardUID(), Convert.ToInt32(Session["courseID"]));
                        i++;
                        _worker.ReportProgress(i);

                    }
                }
            }
        private void m_oWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            //trying to return same view?
            return View("PortalStudents");
        }

Ожидаемый результат: после того, как значение посещаемости учащегося обновляется в db для выполнения работы, прогресс должен быть изменен, и тот же самый взгляд должен быть вызван снова с установленным значением true для этого ученика.

...