Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Потоки.

40K
23 мая 2009 года
AL4X
12 / / 21.04.2009
как сделать чтобы после окончания выполнения потока, был вызван обработчик события, и продолжал работать не в этом потоке, а в главном.

вариант: пусть другой метод в главном потоке ждет завершения дополнительного потока, проверяя его состояние через время.
прошу не рассматривать, можно как нибудь без этого сделать?

ситуация такая:
- событие EventX
- х1 метод запускает х2 метод в новом потоке, и завершается(х1).
- х2, работающий в новом потоке, запускает х3 метод(главный, долго работающий метод)

Если надо код, вот он:
Код:
ref class CopyCreator{
...
void CreatingCopy(RegistryKey^ key, RKey^ node);           
public:
event CallbackDelegate^ OnEnd;
   
void DoCreatingCopy(Object^ param){//запущен в новом потоке
...
//запускает главный рекурсивный метод
CreatingCopy((RegistryKey^)param,registry_tree->root_key);
//после его окончания
//где-то надо вызвать обработчик события
//но работать он должен в главном потоке, а не этом
OnEnd();
}

};

//метод создающий новый поток
void BeginCreatingCopy(RegistryKey^ key){
...
thread1x->Start(key);          
}


Прошу помочь, объяснить ситуацию.
5
23 мая 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: AL4X
вариант: пусть другой метод в главном потоке ждет завершения дополнительного потока, проверяя его состояние через время.


 
Код:
System.Thread^ thread = ....
thread->Start(...);
...
thread->Join(); // ждем завершения
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог