我有六个线程,线程的执行过程都是一样的,同时启动,其中代码如下:
可是我发现产生的随机数尽然相同,知道是种子一样的原因,想问问大虾们,怎么解决?
RobTracj* robTra = (RobTracj*)robTrac;

//根据机器人的工作状态控制线程的生命
DWORD i = 0;
Sleep(50);
srand( GetTickCount() );
    while(robTra->workState==ROB_WORK)
{
robTra->lastPos.angle = rand()*2*3.14/32767;//产生出随机方向
//随机运动公式
robTra->lastPos.x = robTra->lastPos.x + robTra->vel*cos(robTra->lastPos.angle);
robTra->lastPos.y = robTra->lastPos.y + robTra->vel*sin(robTra->lastPos.angle);
//判断机器人是否将跳出运动范围
if (robTra->lastPos.x-1000>0)
{
robTra->lastPos.x = 990;
}
if (robTra->lastPos.x<0)
{
robTra->lastPos.x =10;
}
if (robTra->lastPos.y>1000)
{
robTra->lastPos.y = 990;
}
if (robTra->lastPos.y<0)
{
robTra->lastPos.y = 10;
}

//锁上关键代码段
EnterCriticalSection(&cs);
outDebugInfo(robTra->RobNumLabel,"当前机器人号是:","debugThread.txt");
//outDebugInfo(robTra->lastPos.x,"当前位置","debugThread.txt",ios::app);
LeaveCriticalSection(&cs);
Sleep(50); }
return 0;