이 문제를 해결하는 방법을 궁금합니다.CreateThread가 내 코드에서 작동하지 않습니다.
이 코드에서DWORD threadFunc1(LPVOID lParam)
{
int cur = (int)lParam
while(1)
{
//Job1...
//Reason
break;
}
Start(cur + 1);
Sleep(100);
}
void Start(int startNum)
{
....
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)threadFunc1, &startNum, 0, &dwThreadId);
...
}
void btnClicking()
{
Start(0);
}
는 스레드가 Start()
하여 만든이 및 스레드가 종료 될 때 그것은 Start()
를 호출
나는 CreateThread()
이 코드에서 잘 작동하지 않는 것을 알 수 있습니다.
두 번째로 생성 된 스레드가 작동하지 않습니다. 첫 번째 스레드가 사라지고 두 번째 스레드가 파괴 된 것 같습니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
OS : Win 7 64bit Ultimate. 도구 : Visual Studio 2008.
를 사용한다 MFC를 사용하는 프로그램에서 ['afxBeginThread'] (http://msdn.microsoft.com/en-us/library/s3w9x78e.aspx) 'CreateThread' 대신에. –
음, 로컬 변수에 포인터를 전달한 다음 스레드 프로 시저에서 정수로 캐스팅합니다. 이것은 혼란을 일으키는 경향이 있습니다. (또한 : 스레드 프로 시저가 잘못 선언되었습니다. 무엇이 잘못되었는지'(LPTHREAD_START_ROUTINE) 캐스트를 제거하십시오.) –