Функция тормозит исполнение программы

Делаю так:

//1. Создаю таймер:
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
  {
  SetTimer(hWnd, Timer1, 1000, (TIMERPROC)NULL);
  }

//2. Запускаю таймер:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  {
  switch (message)
    {
    case WM_TIMER:
     myFuncion();
    break;
    }
  }

//3. Функция, которая выполняется по таймеру:
void myFunction()
  {
   hOpenHandle = InternetOpenA("Program", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
   if (hOpenHandle)
     {
     hConnectHandle = InternetConnectA(hOpenHandle, myHost, INTERNET_DEFAULT_HTTP_PORT, myLogin, myPassword, INTERNET_SERVICE_HTTP, NULL, NULL);
     if (hConnectHandle)
       {
       hResourceHandle = HttpOpenRequestA(hConnectHandle, "GET", Pass, HTTP_VERSION, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION, 0);

       HttpSendRequestA(hResourceHandle, postHead, 45, NULL, 0);
        
       DWORD dwBytesRead = 2000;
       TCHAR  szData[2000] = "Error";
       InternetReadFile(hResourceHandle, &szData, sizeof(szData) - 1, &dwBytesRead);
       szData[dwBytesRead];

       InternetCloseHandle(hResourceHandle);
       InternetCloseHandle(hConnectHandle);
       }

     InternetCloseHandle(hOpenHandle);
     }
  }

Все работает, но при выполнении запроса, а конкретно на HttpSendRequestA или InternetReadFile, программа подвисает на доли секунды, что очень неприятно.

Вопрос:

  1. Либо я что-то сделал не правильно, тогда поправьте пожалуйста.
  2. Либо мне нужно выделить для исполнения этого отдельный ресурс. Как я понял, сделать это я могу через CreateThread? Или я ни чего не понял?

Ответы (0 шт):