Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

Как запустить приложения по очереди?   Найти похожие ветки 

 
Doom-2   (2007-05-04 14:06) [0]

Все мы знаем - как сильно подвешивает компьютер копирование большого объёма данных! У меня проблема возникла в том, что за один компьютер в течении дня садятся несколько пользователей и ... копируют, причём почти одно и то-же. Для того, чтобы облегчить их работу, я решил написать программу.
Решить проблему с возможным "подвешиванием" я хочу так: программа при запуске должна проверить - не запущен ли второй её экземпляр на данном компьютере, если запущена (уже кто-то начал копировать файлы для себя), она "встаёт в очередь" и ожидает закрытия всех ЗАПУЩЕННЫХ ДО НЕЁ экземпляров моего приложения!

Спросить, соответственно, я хотел:
1. Как это возможно реализовать (постановка в очередь)?
2. Как при этом организовать какое-нибудь окно "Log очереди"(Выполняется: Петров; Следующие: 1.Иванов, 2.Сидоров)? Было бы замечательно ещё и сделать возможным - регулировать (вручную) порядок в очереди "Следующие".
3. Возможен при таком "конвеерном" режиме конфликт между запущенными экземплярами?


 
Virgo_Style ©   (2007-05-04 14:14) [1]

Программа-копировщик ищет программу-менеджер, если не нашла - запускает, передает ей информацию о своем задании и ждет сигнала начинать. По завершении может дать сигнал или просто завершиться, тогда менеджер должен следить за завершением.

Можно также реализовать все в одной программе, вновь запущенные экземпляры будут просто передавать уже запущенному свои данные и завершаться.


 
Doom-2   (2007-05-04 15:58) [2]

Идея с программой-менеджером интересная!
Но тогда мне как минимум нужно знать как запустить внешнее приложение и ожидать его завершения не зависая :-) ??


 
clickmaker ©   (2007-05-04 16:07) [3]


> запустить внешнее приложение и ожидать его завершения не
> зависая

CreateProcess + WaitForSingleObject(hProcess)


 
Elen ©   (2007-05-04 16:08) [4]


> я решил написать программу.

За тебя это сделали в TC - добавление в очередь


 
Doom-2   (2007-05-04 16:09) [5]

CreateProcess + WaitForSingleObject(hProcess)

Я так и делал! - На время работы внешнего приложения моя программа зависает!


 
Doom-2   (2007-05-04 16:10) [6]

За тебя это сделали в TC - добавление в очередь

Копирование - не единственная задача! Я упрощаю, чтобы было понятнее суть вопроса!


 
clickmaker ©   (2007-05-04 16:32) [7]


> На время работы внешнего приложения моя программа зависает!

запускай в отдельном потоке


 
Doom-2   (2007-05-04 16:36) [8]

Прошу прощения на безграмотность, но как это сделать?


 
clickmaker ©   (2007-05-04 16:40) [9]

TThread + F1 - там есть примеры



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.046 c
15-1177164438
Raqw
2007-04-21 18:07
2007.05.20
Подключается к интернету, но не загружаются страницы!


15-1177249159
ari_9
2007-04-22 17:39
2007.05.20
в каком DB-эксплорере можно сделать sql запрос из двух FB баз ?


2-1178172763
тормоз
2007-05-03 10:12
2007.05.20
DBEdit и DateTimePicker


15-1176885549
DVM
2007-04-18 12:39
2007.05.20
Как будет по английски Ведущий разработчик? Как говорят?


2-1177686183
..::KraN::..
2007-04-27 19:03
2007.05.20
Неправильное отображение страницы в TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский