 
        
        
          Добавил:
          
        
    
            Upload
            
            
            
            
            
            Опубликованный материал нарушает ваши авторские права? Сообщите нам.
          
          Вуз:
          Предмет:
          Файл:
          
        #define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream.h>
CRITICAL_SECTION cs;
DWORD WINAPI thread(LPVOID)
{
  int i,j;
  
  for (j = 0; j < 10; ++j)
    // попытка войти в критическую секцию
    if (TryEnterCriticalSection (&cs))
    {
      for (i = 0; i < 10; i++)
        cout << j << flush;
      cout << endl;
      // выход из критической секции
      LeaveCriticalSection(&cs);
    }
    
  return 0;
}
int main()
{
  int i,j;
  HANDLE  hThread;
  DWORD  IDThread;
  // инициализируем критическую секцию
  InitializeCriticalSection(&cs);
  hThread=CreateThread(NULL, 0, thread, NULL, 0, &IDThread);
  if (hThread == NULL)
    return GetLastError();
  for (j = 10; j < 20; j++)
    // попытка войти в критическую секцию
    if (TryEnterCriticalSection(&cs))
    {
      for (i = 0; i < 10; i++)
        cout << j << ' ' << flush;
      cout << endl;
      // выход из критической секции
      LeaveCriticalSection(&cs);
    }
  // ждем завершения работы потока thread
  WaitForSingleObject(hThread, INFINITE);
  // удаляем критическую секцию
  DeleteCriticalSection(&cs);
  return 0;
}
          Соседние файлы в папке Листинги
          
      
    
    
    
          