user3252048
user3252048

Reputation: 77

how to run the timer task in parallel?

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);
    }
  }
}

there are some function call like XCP_FN_TYPE Xcp_Initialize , CreateSocket (function definition is not shown) is running normally. But how to run

h1=TimerTask(2,TASK1,&Task2ms_Raster);
h2=TimerTask(10,TASK2,&Task10ms_Raster);
h3=TimerTask(100,TASK3,&Task100ms_Raster);

these task in parallel or in the background?

Upvotes: 0

Views: 294

Answers (1)

neutrinus
neutrinus

Reputation: 2009

Run tasks in separate threads/processes and synchronize them with semaphores or mutexes.

Upvotes: 1

Related Questions