Telerik asp. net C# {"Операция с несколькими потоками недопустима: доступ к элементу управления '' осуществляется из потока, отличного от потока, в котором он был создан."} - PullRequest
0 голосов
/ 26 апреля 2020

Это функция, когда я щелкнул btnSearch и загрузил данные в макет вида сетки. Пока я получаю ошибку ниже, и я нажал 2-й, 3-й и 4-й. После 5-го щелчка, он возвращается в нормальное состояние.

{"Операция с несколькими потоками недопустима: доступ к элементу управления '' осуществляется из потока, отличного от потока, в котором он был создан."}

Насколько я понимаю, Мне нужно будет реализовать метод invoke, но я не знаю, как изменить мой код.

Ниже приведен мой код:

   private void LoadgvwTaxResult()
    {
        Task.Run(async () =>
        {
            try
            {
                await Task.Factory.StartNew(() =>
                {
                    _waitingBar.StartWaiting();
                }, _cts.Token, TaskCreationOptions.None, _taskScheduler);

                List<TaxInvoiceSearchModel> list = InitTaxInvoiceData();


                await Task.Factory.StartNew(() =>
                {
                    gvwSeachResult.MasterTemplate.BeginUpdate();
                    InitGridViewHeader();
                    gvwSeachResult.DataSource = null;
                    gvwSeachResult.DataSource = list;
                    gvwSeachResult.MasterTemplate.EndUpdate();
                    ControlInitializer.RefreshTotalRecords(gvwSeachResult);




                    if (gvwSeachResult.Rows.Count > 0)
                    {
                        grpSummary.Visible = true;
                        btnBillingHistory.Visible = true;



                    }
                    else
                    {
                        RadMessageBox.Show("Record not found.", "Validation", MessageBoxButtons.OK, RadMessageIcon.Info);
                        grpSummary.Visible = false;

                    }

                }, _cts.Token, TaskCreationOptions.None, _taskScheduler);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                await Task.Factory.StartNew(() =>
                {
                    _waitingBar.StopWaiting();
                    _waitingBar.ResetWaiting();
                }, _cts.Token, TaskCreationOptions.None, _taskScheduler);
            }
        }, _cts.Token);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...