Форум программистов, компьютерный форум CyberForum.ru

ReadFile() без ожидания - C++

Восстановить пароль Регистрация
 
route66
486 / 419 / 53
Регистрация: 29.04.2011
Сообщений: 443
12.03.2014, 21:20     ReadFile() без ожидания #1
Передача сообщений посредством именованных каналов (pipes).

Как использовать функцию ReadFile() для получения сообщения из канала chan [n] без ожидания появления сообщения в канале? Т.е., если сообщения в канале в данный момент нет, не ожидать его появления.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while (1) 
        {
            // Если в канале есть сообщение,
            if (ReadFile (chan [n], &foo, 4, &foo, 0)) 
            {
                WriteFile (chan [n], &fuel, 4, &foo, 0); // прочитать сообщение
                break;
            }
 
            // Если в канале нет сообщения, не ждать, пока оно появится, 
            // а перейти к выполнению последующих инструкций
            n++;
            if (n > 3) n = 0;
        }
По аналогии, для чтения коротких сообщений, в этом случае, удобна функция PeekMessage():
C++
1
2
3
4
if (PeekMessage (&msg, 0, WM_USER + n, WM_USER + n, PM_REMOVE))
{
    ...
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 21:20     ReadFile() без ожидания
Посмотрите здесь:

Не работает ReadFile() при подключении своей библиотеки C++
C++ проблема с ReadFile()
функция readfile и createfile C++
C++ Режим ожидания в С++
[C] ReadFile/WriteFile C++
C++ Нажатие клавиши без ожидания Enter
Осуществить движение змейки без задержки на ожидания ввода C++
C++ Ввод без ожидания стандартными средствами

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru