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);
}
Потоки.
вариант: пусть другой метод в главном потоке ждет завершения дополнительного потока, проверяя его состояние через время.
прошу не рассматривать, можно как нибудь без этого сделать?
ситуация такая:
- событие EventX
- х1 метод запускает х2 метод в новом потоке, и завершается(х1).
- х2, работающий в новом потоке, запускает х3 метод(главный, долго работающий метод)
Если надо код, вот он:
Код:
Прошу помочь, объяснить ситуацию.
Цитата: AL4X
вариант: пусть другой метод в главном потоке ждет завершения дополнительного потока, проверяя его состояние через время.
Код:
System.Thread^ thread = ....
thread->Start(...);
...
thread->Join(); // ждем завершения
thread->Start(...);
...
thread->Join(); // ждем завершения