C # MethodInvoker - как вызвать метод в потоке в классе A из класса B? - PullRequest
0 голосов
/ 05 сентября 2011

Я не смог найти ничего, что касалось моей ситуации, и я не уверен, как справиться с этим. Настройка:

  1. Форма 1: выберите количество занятий и нажмите «Перейти».
  2. Form1 создает ClassA, который формирует Form2 программно с несколькими индикаторами выполнения в зависимости от количества задач
  3. Form1 вызывает метод в ClassB для выполнения требуемой активности и передает свой экземпляр в класс B.
  4. Класс B запускает поток для обработки и возвращает.

То, что я хочу сделать, это вызывать Form1.ClassA.updateProgressBar (index) из ClassB время от времени.

MehtodInvoker, кажется, правильный путь, но я не уверен, как это сделать. Я думаю о чем-то вроде ...

form.Invoke((MehtodInvoker) delegate { 
     Form1.prog.incProgressBar(name);
})

Где прога ClassA ...

Спасибо, Реза

Ответы [ 3 ]

1 голос
/ 05 сентября 2011

ClassB работает в потоке не-пользовательского интерфейса, поэтому вам необходимо убедиться, что индикатор прогресса обновляется в потоке пользовательского интерфейса Form1.

0 голосов
/ 05 сентября 2011

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

form.Invoke((MehtodInvoker) delegate { 
    form.prog.incProgressBar(name);
})
0 голосов
/ 05 сентября 2011

Видимость по умолчанию для свойств и членов класса является частной, то есть prog является частной и недоступной.

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