32 / 32 / 3
Регистрация: 20.07.2011
Сообщений: 407
1

Обмен переменными между разными процессами

26.11.2011, 14:07. Показов 2822. Ответов 7
Метки нет (Все метки)

У меня включено 2 процесса.
Отдельных.
Можно ли, чтобы один процесс создавал такую переменную, чтобы другое ее мог читать.

Не между классами и модулями или формами, а именно в свободном плавании в Системе.

Спасибо.

Добавлено через 2 минуты
Напр. работаем в двух проектах ,компилируем 2 разных проекта и чтобы один видел переменную другого.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2011, 14:07
Ответы с готовыми решениями:

Обмен данными между процессами
Уважаемое сообщество, подскажите, пожалуйста, с решением такой проблемы: у меня два процесса c# и...

Обмен данными между процессами
Здравствуйте! Задача такая: есть скрипт на php который постоянно в памяти и при каждом запросе...

Обмен данными между процессами
Добрый день! Нужно распараллелить программу. Суть в следующем: должны быть два процесса(разные...

Обмен сигналами между процессами
/*12.Процесс 1 открывает файл ипорождает потомка 2. Процесс 1 с интервалом в 1 секунду (через...

7
_
2363 / 1238 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
26.11.2011, 14:07 2
abbat81, а два процесса - это что - это твои программы или сторонние программы?
0
32 / 32 / 3
Регистрация: 20.07.2011
Сообщений: 407
26.11.2011, 14:12  [ТС] 3
Eugene22, нет, конечно мои. я могу туда вписать.

Вот пример:

Проект1

Dim aa = 123

Как мне сделать в

Проект2

Label1.Text = aa

??
0
_
2363 / 1238 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
26.11.2011, 14:14 4
Цитата Сообщение от abbat81 Посмотреть сообщение
Напр. работаем в двух проектах ,компилируем 2 разных проекта и чтобы один видел переменную другого.
Тогда тебе надо использовать именованные каналы с разделяемой памятью - пример смотри тут - правда это только для NET 4.0.
1
32 / 32 / 3
Регистрация: 20.07.2011
Сообщений: 407
26.11.2011, 14:25  [ТС] 5
Eugene22, это именно то, о чем я спрашивал ))
конечно заммудренно )))

Добавлено через 7 минут
Особенно ,как его из консольного примера использовать в форменном?

VB.NET
1
Dim sharedMemory As MemoryMappedFile = MemoryMappedFile.CreateOrOpen("MemoryFile", Size * 2 + 4)
Size подсвечивает ошибкой:
Оператор "*" для типов "System.Drawing.Size" и "Integer" не определен.
0
_
2363 / 1238 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
26.11.2011, 14:32 6
abbat81, у меня size - это просто название переменной, которое можно поменять как угодно.
Там показан общий механизм на самом простом примере, чтобы было понятно, тем более вроде подробные комментарии. (С WinApi и указателями вышло бы несколько сложнее.)
0
32 / 32 / 3
Регистрация: 20.07.2011
Сообщений: 407
26.11.2011, 16:10  [ТС] 7
Eugene22, Я понимаю, но я имею виду то, что этот пример писан под консоль.
А у меня в форме как записать это:

'Создание участка разделяемой памяти
VB.NET
1
2
3
4
5
   
'Первый параметр - название участка, 
'второй - длина участка памяти в байтах: тип char  занимает 2 байта 
'плюс четыре байта для одного объекта типа Integer
Dim sharedMemory As MemoryMappedFile = MemoryMappedFile.CreateOrOpen("MemoryFile", size * 2 + 4)
Он просто как-то по другому синтаксису это должен писаться.

Добавлено через 2 минуты
Все
сори, затупил, не обявив сайза....
Извиняюсь

Добавлено через 1 час 20 минут
Eugene22, узнал, что MemoryMappedFile бывают двух типов:
MemoryMappedFile: сохраняемые (Persisted) и не сохраняемые (Non-Persisted).

У меня вопрос, если я буду одним процессом сохранять файл (значение переменной) в бинарном виде на диск а другим процессом эту переменную каждую секунду читать.

Не будет ли такой способ тупой и деревянный?
Я просто не хочу на шоссе ездить на гужевом транспорте...

Спасибо.
0
_
2363 / 1238 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
26.11.2011, 16:29 8
Цитата Сообщение от abbat81 Посмотреть сообщение
У меня вопрос, если я буду одним процессом сохранять файл (значение переменной) в бинарном виде на диск а другим процессом эту переменную каждую секунду читать.
Да без разницы, тут надо исходить, что удобнее. По сути дела разделяемая память - это тот же файл.
Можно вообще тупо кодировать информацию и не обязательно в двоичном виде в текстовый файл и считывать с него.
Просто допустим манипулирование файлами на диске несколько медленнее происходит, чем файлами в памяти. Если ты откроешь файл в одном процессе, то чтобы он мог использоваться в другом процессе его надо закрыть, либо произвести с ним некоторые манипуляции. А разделяемая память для того и нужна, чтобы она могла использоваться несколькими процессами одновременно.
В любом случае это зависит от личных предпочтений.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2011, 16:29
Помогаю со студенческими работами здесь

Обмен данными между процессами
хотелось бы узнать в какую сторону копать сей вопрос (Обмен данными между процессами) надо чтобы...

Обмен данными между процессами
Здравствуйте. Нужно создать три процесса.(fork()). У меня есть два варианта исхода событий: 1. -...

Обмен сообщениями между процессами
Необходимо передать некую информацию из одного процесса (службы) в клиентское приложение,...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru