1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| procedure TQuadThreadingExampleClass.Run; var tp1, tp2, tp3, tp4: PQuadThreadingExampleInformation; Thread1, Thread2, Thread3, Thread4: THandle; ThreadID1, ThreadID2, ThreadID3, ThreadID4: Cardinal; begin New(tp1); New(tp2); New(tp3); New(tp4);
tp1.Number := 1; tp2.Number := 2; tp3.Number := 3; tp4.Number := 4;
Thread1 := BeginThread(nil, 0, @ThreadFunc, tp1, 0, ThreadID1);
Thread2 := BeginThread(nil, 0, @ThreadFunc, tp2, 0, ThreadID2);
Thread3 := BeginThread(nil, 0, @ThreadFunc, tp3, 0, ThreadID3);
Thread4 := BeginThread(nil, 0, @ThreadFunc, tp4, 0, ThreadID4);
WaitForSingleObject(Thread1, INFINITE); WaitForSingleObject(Thread2, INFINITE); WaitForSingleObject(Thread3, INFINITE); WaitForSingleObject(Thread4, INFINITE);
Dispose(tp1); Dispose(tp2); Dispose(tp3); Dispose(tp4); end; |