
- •1. Библиотеки. Статическая библиотека. Создание.
- •2. Библиотеки. Статическая библиотека. Использование.
- •3. Библиотека. Динамическая библиотека. Создание.
- •4. Библиотека. Динамическая библиотека. Статическая загрузка.
- •5. Библиотека. Динамическая библиотека. Динамическая загрузка.
- •7. Библиотеки. Динамическая библиотека. Сравнение способов загрузки.
- •8.Использование файлов при создании программы.
- •9. Позиционирование при работе с файлами. Функция.
- •10. Отображение файла на памяти. Назвать назначения параметров в функции.
- •11. Управление памятью. Для чего используется.
- •12.Блокирование памяти. В каком случае используется. Функции для блокирования.
- •13.Управление памятью. Для чего используют функции:
- •14. Для чего создаются процессы. Функции.
- •15. Назначение функций:
- •16. Асинхронный ввод/вывод:
- •17. Для чего используются потоки. Функции
- •18. Приоритеты процессов и потоков. Функции:
- •19. Синхронизация потоков. Interlocked функции. Назначение функций:
- •20. Синхронизация потоков. Критические секции. Функции.
- •21. Использование Event для синхронизации. Функции:
- •22. Использование Semaphore для синхронизации. Функции:
- •23. Использование WaitableTimerдля синхронизации. Функции:
- •24) Управление процессом. Планирование и диспетчеризация.
- •25) Использование Mutex для синхронизации. Функции.
- •26) Сравнение сегментной и страничной адресации
- •27) Страничная организация памяти.
- •29) Локальная память компьютеров. Функции
- •30. Соглашения по вызову, объяснить следующие с, срр, fastcall, stdcall. Дайте рекомендации по использованию соглашения.
23. Использование WaitableTimerдля синхронизации. Функции:
Объект waitable timer - объект синхронизации, состояние которого установлено, когда указанный поток своевременно выполнился. Есть два типа waitable timer, которые могут быть созданы: с ручным сбросом и синхронизированный. Таймер любого типа может быть периодический таймером.
HANDLE WINAPI CreateWaitableTimer(
LPSECURITY_ATTRIBUTES lpTimerAttributes, //указатель на структуру
BOOL bManualReset, //если true – ручного сброса, false – синхронизированный
LPCTSTR lpTimerName //имя объекта таймера
);
BOOL WINAPI SetWaitableTimer(
HANDLE hTimer, //дескриптор объекта таймера
const LARGE_INTEGER *pDueTime, //Времени, после которого состояние таймер должен быть установлен в сигнальное положение
LONG lPeriod, //период таймера в миллисекундах
PTIMERAPCROUTINE pfnCompletionRoutine, //указатель на необязательную процедуру завершения
LPVOID lpArgToCompletionRoutine, //Указатель на структуру, которая передается в процедуру завершения.
BOOL fResume //Устанавливает режим обеспечения в спящем режиме
);
24) Управление процессом. Планирование и диспетчеризация.
Запуск процесса во время выполнения с помощью свойств StartInfo
Установите параметры запуска, предоставляемые свойством StartInfo.
Вызовите метод Start компонента Process.
Остановка процесса
Вызовите метод GetProcessesByName для извлечения процесса, который требуется остановить.
Вызовите один из следующих методов:
Если процесс имеет пользовательский интерфейс, вызовите метод CloseMainWindow.
Если процесс безоконный, вызовите метод Kill.
Проверка отклика процесса
Если процесс не был запущен при помощи компонента Process, свяжите его с соответствующим процессом.
Просмотрите значение свойства Responding.
Определите порядок действий в зависимости от значения свойства.
В следующем примере показано, как определить, отвечает ли программа Блокнот на запросы. Если свойство Responding имеет значение true, вызовите метод CloseMainWindow, чтобы закрыть приложение. Если свойство Responding имеет значение false, для принудительного завершения процесса используется метод M:System.Diagnostics.Process.Kill.
Проверка завершенности процесса
Просмотрите значение свойства HasExited компонента Process, с помощью которого процесс был запущен.
В следующем примере показано, как использовать свойство HasExited для проверки завершенности процесса под названием Process1, связанного с компонентом Process. Если процесс еще не завершен, вызовите метод CloseMainWindow, чтобы закрыть приложение.
Просмотр запущенных процессов
Объявите пустой массив типа Process.
Заполните пустой массив значениями, возвращенными методом GetProcesses.
Повторите эти действия для всего массива процесса, используя индексное значение для получения имени каждого процесса в массиве и его отображения на консоли.
Ожидание завершения действий процессом
Свяжите экземпляр компонента Process с процессом, который нужно запустить. Дополнительные сведения см. в разделе Практическое руководство. Назначение процессов.
Запустите процесс, вызвав метод Start.
Вызовите соответствующий метод WaitForInputIdle.
Метод WaitForInputIdle предписывает компоненту Process подождать неограниченное время, пока связанный с ним процесс перейдет в состояние бездействия.
Метод WaitForInputIdle предписывает компоненту Process подождать указанное количество времени в миллисекундах, пока связанный процесс перейдет в состояние бездействия.