Проблема сохраняется в среде Win32 в Visual Studio.
У меня есть 2 класса:
void classA::DoSth(HWND param){
for(int i = 0; i<24; i++)
std::cout<<i<<"\n";
}
void classB::DataGood(HWND param){
std::cout<<"OKAY\n";
}
Файл реализации: Реализация. cpp
UINT startDAQThread(LPVOID param)
{
theApp.myClassB = new ClassB; //reference to theApp found below
theApp.myClassB->DataGood((HWND)param); //continually looks for data
return(0);
}
UINT startAlgorithmThread(LPVOID param)
{
theApp.classAPtr->DoSth((HWND)param);
return(0);
}
BOOL Implementation::OnInitDialog(){
AfxBeginThread(startDAQThread, GetSafeHwnd(), THREAD_PRIORITY_NORMAL);
Sleep(1000);
AfxBeginThread(startAlgorithmThread, GetSafeHwnd(), THREAD_PRIORITY_ABOVE_NORMAL);
return TRUE;// #define TRUE 1
}
MainApp.h
class MainApp:public CWinApp{
MainApp();
};
extern MainApp theApp;
MainApp. cpp
MainApp theApp;
Выход:
1
2
3
OKAY
4
5
OKAY
6
7
8
OKAY
9-23
Как мне сделать уверен, что l oop сначала завершит свой прогон, а затем еще какое-нибудь выполнение?
Исследование, которое я провел:
Как новичок, я приложил некоторые усилия, чтобы попытаться добавить мьютекс и ограничить совместное использование ресурсов. Мне это не удалось, так как я не мог выяснить, какой ресурс распределяется между двумя классами / функциями
Я убедился, что все #includes
включены, и программа компилируется и запускается