Run two functions at the same time

c++, visual-studio-2010

Solution

You can use _beginthread

void CalculatePrimes(void*)
{
  // Do something
}

void TransmitFile(void*)
{
  // Do domething
}

int main()
{
  uintptr_ x = _beginthread(CalculatePrices,0,NULL);
  uintptr_ y = _beginthread(TransmitFile,0,NULL);

  return 0;
}

If you've got access to C++11 you can use std::thread :

void CalculatePrimes()
{
  // Do something
}

void TransmitFile()
{
  // Do domething
}

int main()
{
  std::thread x(CalculatePrices);
  std::thread y(TransmitFile);

  // Both function are now running an different thread
  // We need to wait for them to finish

  x.join();
  y.join();

  return 0;
}

And, if you want to get down to the metal you can use the CreateThread api :

DWORD WINAPI CalculatePrimes(void *)
{
  // Do something
  return 0;
}

DWORD WINAPI TransmitFile(void *)
{
  // Do something
  return 0;
}

int main()
{
  HANDLE x=::CreateThread(NULL,0,CalculatePrimes,NULL,0,NULL);
  HANDLE y=::CreateThread(NULL,0,CalculatePrimes,NULL,0,NULL);

  // Wait for them to finish
  ::WaitForSingleObject(x,INFINITE);
  ::WaitForSingleObject(y,INFINITE);

  return 0;
}

Problem

I have two functions. How would i run two functions at the same time? I Know should use threading. I need a example for Multi Threading . I am using Visual Studio 2010

Original source