void main()
{
uint8 data;
HANDLE h1,h2,h3;
double Task2ms_Raster, Task10ms_Raster, Task100ms_Raster;
XCP_FN_TYPE Xcp_Initialize();
CreateSocket();
h1=TimerTask(2,TASK1,&Task2ms_Raster);
h2=TimerTask(10,TASK2,&Task10ms_Raster);
h3=TimerTask(100,TASK3,&Task100ms_Raster);
while(1)
{
data = recv(fd, recv_data, 512, 0);
if (data == SOCKET_ERROR)
{
printf("recv failed with error %d\n", WSAGetLastError());
}
else
{
pChunkData = recv_data;
chunkLen = sizeof(pChunkData);
XCP_FN_TYPE XcpIp_RxCallback( (uint16) chunkLen, (uint8*) *pChunkData, (uint16) port);
XCP_FN_TYPE XcpIp_OnTcpCxnClosed(port);
}
}
}
有一些函数调用如XCP_FN_TYPE Xcp_Initialize,CreateSocket(函数定义未显示)正常运行。但是如何运行
h1=TimerTask(2,TASK1,&Task2ms_Raster);
h2=TimerTask(10,TASK2,&Task10ms_Raster);
h3=TimerTask(100,TASK3,&Task100ms_Raster);
这些任务并行或在后台?
答案 0 :(得分:1)
在单独的线程/进程中运行任务,并将它们与信号量或互斥锁同步。