1
我正在實例化一個創建線程的類的多個實例。由於線程是靜態的,對象的實例是否會干擾彼此的線程操作?實例化創建線程的類的多個實例...?
奇怪的是我看到2個不同的波形,並運行在兩個不同的睡眠延遲。 ???這是否意味着有2個不同的線程?
void CWaveGeneration::CreateWave()
{
Y = new double[numPoints];
X = new double[numPoints];
I = new int[numPoints];
CWaveGeneration *pp = this;
hThread_Wave = CreateThread(NULL, 0, Thread_Wave, pp, 0, NULL);
//within the thread, there is the setting of Sleep(iSleep);
}
void CWaveGeneration::CreateWave(int _waveType, double _A, double _w, double _T, double _r, int _numPoints, int _iSleep)
{
waveType = _waveType;
A = _A;
w = _w;
T = _T;
r = _r;
numPoints = _numPoints;
iSleep = _iSleep;
CreateWave();
}
DWORD WINAPI CWaveGeneration::Thread_Wave(LPVOID iValue)
{
CWaveGeneration *p = (CWaveGeneration*)iValue;
switch (p->waveType)
{
case 0:
p->Sine();
break;
case 1:
p->Square();
break;
case 2:
// p->Triangle();
break;
case 3:
// p->SawTooth();
break;
}
return true;
}
從頭文件:
static DWORD WINAPI Thread_Wave(LPVOID iValue);
wave1 = new CWaveGeneration();
wave1->CreateWave(0,100,10,0,0,200, 10);
wave2 = new CWaveGeneration();
wave2->CreateWave(1,80,5,0,0,200, 100);
// in total, are there 1 thread or 2 threads created here ???
你可以給一些代碼嗎? – Jagannath 2012-04-20 06:22:55
「線程是靜態的」是什麼意思?在大多數系統上(以及任何支持C++線程模型的系統),您可以隨意創建並銷燬它們。 – 2012-04-20 07:17:07
我加了一些代碼 – jdl 2012-04-20 13:33:52