Страница: 1 | 2 |
Вопрос: Обмен данными между приложениями
Добавлено: 11.11.08 17:56
Автор вопроса: Legon
Ответы
Всего ответов: 25
Номер ответа: 16
Автор ответа:
Legon
Вопросов: 4
Ответов: 32
Профиль | | #16
Добавлено: 14.11.08 21:04
Ффуууххх. Замучался. Сижу, и смотрю на этот код как баран на новые ворота. И я понимаю, что я не понимаю, но не понимаю ЧТО я не понимаю.
Вроде понимаю, что раз не задействованны механизмы выхода из цикла, значит - он для вида. Я так думаю. На этом мое понимание и заканчивается.
Я не понимаю:
1. Передает ли этот инстанс информацию другому инстансу или только в пределах себя?
2. Если передает, то где механизм (или событие), сигнализирующее о том, что поступила команда от другого инстанса?
3. Раз нет события, то как сделать постановку новых заданий в очередь?
4. И самое главное: Запускаются инстансы так, как этого хочет Windows. По 30-40 штук за раз и более. Каким образом остальные инстансы узнают, какой из них главный? Ведь работать будет только один, а остальные служат только для передачи главному командной строки.
Если я уже вас всех достал, закрывайте тему. Я так понял, что возни со мной будет больше, чем я расчитывал.
Спасибо.
Номер ответа: 17
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #17
Добавлено: 14.11.08 21:26
В этом коде нет механизма передачи данных между процесами. Это просто иллюстрация обработки файлов в очереди в отдельном потоке.
Цикл который вы скопировали просто служит для того чтоб ставить файлы в очередь с клавиатуры через консоль - в вашем приложении он, разумеется. не нужен.
Номер ответа: 18
Автор ответа:
Legon
Вопросов: 4
Ответов: 32
Профиль | | #18
Добавлено: 14.11.08 21:50
Тогда возвращаюсь к самому началу: А как передать и получить данные между инстансами?
Номер ответа: 19
Автор ответа:
Sebas
Вопросов: 0
Ответов: 5
Web-сайт:
Профиль | | #19
Добавлено: 18.11.08 10:06
Номер ответа: 20
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #20
Добавлено: 18.11.08 14:12
Не помню где видел, но искать советую по аббревиатуре DDE.
Номер ответа: 21
Автор ответа:
Legon
Вопросов: 4
Ответов: 32
Профиль | | #21
Добавлено: 20.11.08 01:07
Sebasпопробовал:
Вываливает системную ошибку платформы .NET
Номер ответа: 22
Автор ответа:
Legon
Вопросов: 4
Ответов: 32
Профиль | | #22
Добавлено: 20.11.08 01:59
Более того: я создал вообще голый проект, установил флажок Make Application Single Instance (Уррррра, я наконец узнал, куда делось свойство App.PrevInstance), и при запуске второго инстанса все равно ошибка .NET (не виндосовская)
Номер ответа: 23
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #23
Добавлено: 20.11.08 08:13
Ты так смело обращаещься к первому элементу массива.. а ты уверен, что в этом массиве есть хотя бы 1 аргумент? - это раз..
во вторых, написанный тобой код, выгляди, мягко говоря, странным.. Как правило, подобный вызов делается не в форме а в специальном классе, который генерируется студией (найти его можно в свойствах проекта - 'Application Events')
и в третьих, если уж ты создал своего делегата, то где ты подписал его на событие StartupNextInstance?
Номер ответа: 24
Автор ответа:
Legon
Вопросов: 4
Ответов: 32
Профиль | | #24
Добавлено: 20.11.08 18:21
Прошу простить за "устаревший" пример. На самом деле, на момент описания, я действительно обнаружил и свою ошибку, и "куда надо прописывать" обработчик события. Но суть проблемы остается: Даже в совершенно пустом проекте я ставил галочку "Make Application Single Instance", компилировал его и при запуске второго инстанса вываливалась ошибка: "..... Отправлять отчет/Не отправлять". И что делать - фиг его знает.
Номер ответа: 25
Автор ответа:
Legon
Вопросов: 4
Ответов: 32
Профиль | | #25
Добавлено: 20.11.08 19:28
Запустил первый инстанс в среде, а второй через проводник. И среда выдала: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Мдяяя...