mam mały problem. Mam wątek, który wywołuję za pomocą funkcji _beginthread. W wątku tym muszę losować sobie liczbę z pewnego zakresu. Gdy jednak już podczas działania programu dochodzi do losowania Widnows wywala błąd… słyszałem, że wątki mogą mieć problemy z liczeniem czasu, ale może istnieje jakiś sposób, żeby temu zaradzić?
oto mój wątek
void __cdecl czasoodmierzacz(void* ptr){//-------------------------------wątek
char temp[400];
int s,t;
DIR * folder;
struct dirent *folst;
GetWindowTextA(sec, temp, 10);
s=atoi(temp);
GetWindowTextA(path,temp,400);
t=SendDlgItemMessageA(uchwytOkna,110, CB_GETCURSEL,0,0);
folder=opendir(temp);
if (!folder){MessageBox(uchwytOkna, "Podany folder nie istnieje", "ERROR!!!", MB_OK | MB_ICONWARNING); _endthread();}
if (t==0) t=1000;
else if(t==1) t=60000;
else if(t==2) t=3600000;
folst=readdir(folder);
folst=readdir(folder);
vector filenames;
string te;
while(folst=readdir(folder)){
te=folst->d_name;
if(te.rfind(".jpg")==1 || te.rfind(".bmp")==1 || te.rfind(".png")==1 || te.rfind(".gif")==1 || te.rfind(".jpeg")==1) filenames.push_back(folst->d_name);
}
int los;
srand(time(NULL));
while (true) {
Sleep(s*t);
los=rand()%filenames.size(); //--------------------------------tutaj właśnie odbywa się to losowanie
}
}