IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Синхронизация работы экземпляров приложения, VC++ 2008 EE
18192123
сообщение 7.11.2008 19:05
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Требуется разработать приложение, которое, будучи запущенным несколько раз, выполняет отчёт до 5-ти, затем ждёт, пока другой экземпляр этого приложения сосчитает до 5-ти, после чего продолжает свой отчёт. Счёт выполняют все запущенные экземпляры приложения по очереди..

Воть..
начала с того, что запускаю эти самые экземпляры в отдельных потоках..трудность на этом этапе в том, что не пойму, что должно быть 3-им параметром в CreateThread..Объясните пожалуйста!


#define MAX_THREADS 3
//........
HANDLE hThreadArray[MAX_THREADS];
DWORD dwThreadIdArray[MAX_THREADS];

TCHAR szFileName[260];
OPENFILENAME ofn;
LPCWSTR lpFilter=TEXT("Executive\0*.EXE\0");
ZeroMemory(&ofn,sizeof(OPENFILENAME));
ofn.lStructSize=sizeof(OPENFILENAME) ;
ofn.hwndOwner=hWndMain;
ofn.hInstance=NULL;
ofn.lpstrFile = szFileName;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = sizeof(szFileName);
ofn.lpstrFilter = lpFilter;
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
if (GetOpenFileName(&ofn) && i<=3 )
{
i++;
hThreadArray[i] = CreateThread(
NULL,
0,
//???,
NULL,
0,
&dwThreadIdArray[i]);

}




Сообщение отредактировано: 18192123 - 7.11.2008 19:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 8.11.2008 23:14
Сообщение #2


Гость






Цитата
с потоками для того, что бы можно было для синхронизации работы использовать Event
Event тоже можно использовать для межпроцессного взаимодействия, только надо делать это аккуратно...

Цитата
а что разумнее: первая копия запускает остальные копии приложения или пользователь, я не знаю..
Я тем более не знаю. Решай. Я бы сделал запуск копий пользователем. Запущена одна копия - работает постоянно только она. Запустили вторую - работают первая и вторая поочередно, и т.д. Но вот тебе еще вопрос на засыпку: куда ты будешь выводить информацию о работе процесса? Каждый процесс - в свое окно? Тогда как следить за тем, что выполняются процессы именно в нужном порядке? Куда-нибудь в один из процессов? Тогда в какой именно?

Может, сделать первую копию с GUI, а все последующие уже без? То есть, окно будет только у первой копии, а все остальные будут работать с ним.
 К началу страницы 
+ Ответить 
18192123
сообщение 8.11.2008 23:32
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 8.11.2008 23:14) *

Решай. Я бы сделал запуск копий пользователем. Запущена одна копия - работает постоянно только она. Запустили вторую - работают первая и вторая поочередно, и т.д.
Может, сделать первую копию с GUI, а все последующие уже без? То есть, окно будет только у первой копии, а все остальные будут работать с ним.

Да, я согласна с тем, что запуск копий будет производиться пользователем

Цитата(volvo @ 8.11.2008 23:14) *

Может, сделать первую копию с GUI, а все последующие уже без? То есть, окно будет только у первой копии, а все остальные будут работать с ним.

Ух ты..! Не знала, что так можно...Согласна, что это очень удобный способ отслеживать очередность действия копий..Только, как сделать - не представляю..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
18192123   Синхронизация работы экземпляров приложения   7.11.2008 19:05
volvo   Это должна быть точка входа (адрес) в функцию, вып...   7.11.2008 20:02
18192123   Теперь вопросы по сути задания... В качестве метод...   8.11.2008 13:38
volvo   Правильно полагаешь. Ну вот именно это и понимать...   8.11.2008 15:37
18192123   Прежде всего такой вопрос: в приведённом выше коде...   8.11.2008 21:54
volvo   Стоп... Возникает 2 вопроса: 1) если у тебя рабо...   8.11.2008 22:30
18192123   Стоп... Возникает 2 вопроса: 1) если у тебя раб...   8.11.2008 22:46
volvo   Event тоже можно использовать для межпроцессного в...   8.11.2008 23:14
18192123   Решай. Я бы сделал запуск копий пользователем. За...   8.11.2008 23:32
volvo   Что мешает тебе сделать следующее: прежде всего пр...   9.11.2008 1:53
18192123   ..как запрещается запуск второй копии приложения,...   9.11.2008 17:02
volvo   В общем, задачка интересная, вот я набросал кое-чт...   9.11.2008 17:14
18192123   В общем, задачка интересная, вот я набросал кое-ч...   9.11.2008 19:30
volvo   Не очень люблю отвечать вопросом на вопрос, но зде...   9.11.2008 19:46


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 17:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"