| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Доступ к контролу формы из другого потока |
| Автор: asp1rant 30.3.2012, 15:56 | ||||
| Пишу на C++.net код в другом потоке (не в основном) вызывает событие StepEvent(this, gcnew StepEventArgs(_step, _status)); на это событие подписан метод imageAnalyzer->StepEvent += gcnew EventHandler<StepEventArgs^>(this, &Form1::AnalyzerEventHandler); когда случается событие, вызывается
но не работает. пишет что нет доступа к элементам чужого потока. оно и понятно, я уже разобрался что так и должно быть. но вот только для c#. как для с++ так и не понял. пробовал
так мне пишет Ошибка error C3352: void VideoOnForm::Form1::AnalyzerEventHandler(System::Object ^,StepEventArgs ^): указанная функция не соответствует типу делегата "void (System::Object ^,StepEventArgs ^)". буду очень благодраен подсказке) |
| Автор: asp1rant 31.3.2012, 07:07 |
| убедительная просьба тем кто знает: подскажите! я знаю что этот вопрос уже по 100 раз обсуждался в инете, но про c#, а на этом чертовом c++.net нет анонимных функций, и не удается применять их подходы :( |
| Автор: Cheloveck 31.3.2012, 09:54 |
| Зови Invoke не у this, а у делегата. |
| Автор: asp1rant 31.3.2012, 12:04 | ||
| спасибо, я разобрался. у делегата invoke как я понял, делает протсо вызов ф-ии (мсдн не советует его вызывать) из того же потока. рабочий код:
и еще добавить this. |