Что состоит в том, чтобы сделать самый легкий путь, предают коммуникацию процесса земле в C#?

Две идеи:

(1) Много конфигураций являются главным образом вакуумом. Сохраните связанный список (не обязательно в порядке, который занял бы больше времени) живых ячеек, и во время обновления, только обновите вокруг живых ячеек (это подобно Вашему неопределенному предложению, OysterD:)

(2) Сохраняют дополнительный массив, который хранит # живых ячеек в каждой строке 3 положений (лево-центральное право). Теперь при вычислении нового мертвого/живого значения ячейки Вам нужны только 4 операции чтения (вершина/нижние ряды, и положения центральной стороны), и 4 операции записи (обновите 3 затронутых сводных значения строки и мертвое/живое значение новой ячейки). Это - небольшое улучшение от 8 чтений и 1 записи, принимающие записи не медленнее, чем чтения. Я предполагаю, что Вы могли бы быть в состоянии быть более умными с такими конфигурациями и достигнуть еще лучшего улучшения вдоль этих строк.

15
задан Peter Mortensen 26 November 2009 в 10:59
поделиться

6 ответов

Другой способ - имитировать именованный канал. Объявление где-нибудь файл и чтение / запись в него.

Или, если программы выполняются последовательно, вы можете попробовать буфер обмена ... но это решение ужасно ужасно и содержит ошибки (иногда .NET может ' t получить доступ к буферу обмена без причины).

0
ответ дан 1 December 2019 в 02:29
поделиться

Я бы сказал, чтобы они говорили через сокет.

Пусть одна программа прослушивает сокет, а другая подключает к первый. Отправьте два целых числа в одной строке в виде цепочек цифр.

Единственный вопрос в том, как они должны согласовывать номера портов и как они узнают, что разговаривают друг с другом. Они могут договориться о номерах портов, если вы решите, что они всегда должны использовать порт 12345 (скажем), а грязное хакерское решение для второй части - просто доверять тому, с кем вы разговариваете, быть хорошим парнем.

0
ответ дан 1 December 2019 в 02:29
поделиться

Самый простой и надежный способ - это почти наверняка IpcChannel (он же канал связи между процессами); вот для чего он нужен. Вы можете запустить его с помощью пары строк кода и конфигурации.

20
ответ дан 1 December 2019 в 02:29
поделиться

Вы можете попробовать .NET Remoting. Вот простой пример: CodeProject .NET Remoting .

Если вы используете .NET 3.5, вам следует перейти на WCF, поскольку удаленное взаимодействие постепенно устаревает. Опять же, существует множество примеров для WCF .

5
ответ дан 1 December 2019 в 02:29
поделиться

Для полноты картины вы также можете использовать net.pipe и WCF .

0
ответ дан 1 December 2019 в 02:29
поделиться

I've created my own open source library for quick and easy IPC which works between Windows services, console applications and Windows forms.

It has some advantages over existing IPC implementations and doesn't require any configuration.

See here.

2
ответ дан 1 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: