2014-01-30 39 views
0
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); 

這些任務並行或在後臺?

+2

第一次正確縮進你的代碼 –

回答

1

在單獨的線程/進程中運行任務,並將它們與信號量或互斥鎖同步。

+0

可否請你給我一個上述問題的例子(我想並行地運行TimerTask)? – user3252048