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

241
29 апреля 2022, 17:10

Делаю так:

//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? Или я ни чего не понял?
READ ALSO
Не могу собрать и установит gRPC c++

Не могу собрать и установит gRPC c++

Пытаюсь собрать grpс с помощью cmakeПроект нормально собирается, но на этапе установке с помощью make install выдает ошибку

220
Для чего нужен логический оператор || и &&?

Для чего нужен логический оператор || и &&?

Для чего нужны эти операторы, если побитовые |, & справляются с этим?

135
Переопределение операции ++ c++

Переопределение операции ++ c++

не получается сделать переопределение ++ как движение по спискуПомогите пожалуйста исправить проблему

270
Скорость сравнения двух массивов char

Скорость сравнения двух массивов char

Вдруг возник такой простой вопрос: нужно просто сравнить два массива чаров

157