как решить эту проблему == Недопустимая операция между потоками: элемент управления 'frm_proc' доступен из потока, отличного от потока, в котором он был создан - PullRequest
1 голос
/ 14 января 2012

У меня есть с. В этой форме у меня есть кнопка ... при событии щелчка напишите этот код

_BackgroundWorker.RunWorkerAsync(new MethodInvoker(() =>
            {

                progressBar1.BeginInvoke(new MethodInvoker(() => progressBar1.Visible = true));
                Print formp = new Print();
                formp.ShowDialog();
                this.Hide();


            }));

, но я получил ошибку в этом .Hide ()... как я могу решить

Ответы [ 2 ]

1 голос
/ 14 января 2012

Вы не можете получить доступ к элементам управления из потока, отличного от потока GUI, вам нужно использовать InvokeRequired , чтобы проверить, так ли это. Если это так, вам нужно будет вызвать ваш вызов в потоке GUI.

Трудно сказать без контекста, но, возможно, вам следует спросить себя, нужно ли запускать этот код асинхронно.

0 голосов
/ 14 января 2012

Попробуйте это:

this.Invoke(new System.Action(()=>this.Hide()));

Вам не разрешен доступ к элементам управления пользовательского интерфейса (или их родительской форме) из потока, отличного от того, в котором запущен обработчик сообщений этой формы (обычно называемый потоком пользовательского интерфейса),В этом случае this относится к самой форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...