![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| ytrewq |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 16.10.2006 Репутация: нет Всего: нет |
Здрасти, у меня такой вопрос
есть две фнукции: 1 одна, копирует с одной папки в другую 2 вторая, запускает приложения с папки которая скпировалась как дождаться , что функция копирования выполнилась, а то вторая функция запускает фаил, который еще не скопировался? Можно конечно поствавить задержку между операциями, тогда нормально если можно простой пример реализации |
|||
|
||||
| Evjeny |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 14.8.2006 Репутация: нет Всего: 5 |
Сделай два потока и синхронизируй их. В первом потоке будет выполняться функция копирования, во втором функция запуска.
|
|||
|
||||
| Draeden |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.7.2008 Репутация: нет Всего: нет |
Почитай документацию к "событиям": функции CreateEvent и др.
Есть как минимум три варианта: 1. Программа копирующая файл ( программа A ) создаёт событие с определённым именем в несигнальном состоянии через CreateEvent ( ...EventName... ), после чего копирует файл и переводит это событие в сигнальное состояние через SetEvent. Программа запускающая файл ( программа B ) открывает событие по имени ( оно заранее известно ) через OpenEvent ( ...EventName... ), затем переходит в состояние ожидания через WaitForSingleObject. Функция WaitForSingleObject вернёт управление как только событие ( которое оно ждёт ) перейдёт в сигнальное состояние, а оно перейдёт в это состояние после вызова функции SetEvent программой A. Дождавшись события, функция запускает файл. 2. Программа A копирует файл, а программа B создаёт дополнительный поток через CreateThread который тупо в цикле проверяет наличие нужного файла. 3. Смотри MSDN к FindFirstChangeNotification/FindNextChangeNotification. |
|||
|
||||
| ytrewq |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 16.10.2006 Репутация: нет Всего: нет |
а можно пример
нужно чтоб весь каталог полностью скопировался, а не фаил
я посмотрел пример в MSDN , там передается каталог и проверяется есть ли он или нет, а как передать конкретно функцию у меня щас так сделано:
|
||||||
|
|||||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
у вас несколько потоков чтоли? если функции выполняются последовательно в одном потоке то такого поведения как вы описали быть не должно. что имхо будет правильно для вашего случая.
если же несколько потоков уже есть, тогда да, нужно будет сихронизацию мутить. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| ytrewq |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 16.10.2006 Репутация: нет Всего: нет |
||||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
а зачем задержка?
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |