15,471
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <windows.h>
#include <process.h>
#include <iostream>
using namespace std;
int cam_count=4;
typedef struct cameraInfo
{
int cam_index;
char windowName[16];
IplImage *pFrame;
};
cameraInfo *camInfo[6];
//子线程函数
unsigned int __stdcall readCamera(void* pArguments )
{
cameraInfo *info = (cameraInfo*)pArguments;
printf("线程ID号为%4d的子线程说:read Camera%d\n", GetCurrentThreadId(),info->cam_index);
printf("线程ID号为%4d的子线程说:read Camera %s\n", GetCurrentThreadId(),info->windowName);
return 0;
}
void camThreadTest()
{
const int THREAD_NUM = 6;
HANDLE handle[THREAD_NUM];
for (int i = 0; i < cam_count; i++)
{
printf("cam_count=%d.\n", i);
camInfo[i]=new cameraInfo;
sprintf(camInfo[i]->windowName,"camera%d",i);
camInfo[i]->cam_index=i;
handle[i] = (HANDLE)_beginthreadex(NULL, 0, readCamera, (void*)camInfo[i], 0, NULL);
}
WaitForMultipleObjects(THREAD_NUM, handle, TRUE, INFINITE);
}
int main()
{
camThreadTest();
return 0;
}