Здравствуйте, Mandigal, Вы писали:
M>У меня есть в проге длительная операция (рассчет CRC32 для файлов больше 1GB) и я хочу для нее создать отдельный рабочий поток
M>Делаю как в хелпах писано
M>Глобальную управляющую функцию
M>UINT MyThreadProc( LPVOID pParam )
M>{
M> CTestDlg::testThread();
M>return 0;
M>}
M>и ее вызов
M>void CTestDlg::OnBnClickedB1()
M>{
M>AfxBeginThread(MyThreadProc,NULL);
M>}
M>Но естественно глобальная MyThreadProc не может видеть CTestDlg::testThread(); (ну или я подставлял содерживое testThread(), там тоже все рассчитано что функция выполняется в классе CTestDlg), мне знакомый посоветовал что можно объявить MyThreadProc как член класса CTestDlg и просто написать оболочку(глобальную) для запуска ее, но у меня не получилось.
M>Пожалуйста подскажите как, если можно с примерами, потому как я с потоками вообще еще не работал и пока непонимаю принципов (прочтение MSDN не помогло
( )
Вместо NULL передавай HWND диалога. А как закончишь расчет перешли результат через SendMessage.
Номер сообщения получай через RegiterWindowMessage
Удачи