Межпроцессное взаимодействие в F # - PullRequest
2 голосов
/ 15 декабря 2011

Я работаю над внешним DSL в F #.Язык должен разрешать параллельные циклы:

start 5 times
    operation

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

Предполагается, что это единственный способвокруг проблемы небезопасности потока, Как я могу запустить процесс и передать поддерево выполнения (разобщенное объединение в этой точке), которое должно быть выполнено?

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

Кроме того,производительность в данном случае не очень важна.

РЕДАКТИРОВАТЬ: Оказывается, мне не нужно никаких сообщений после запуска процесса.Я испытываю желание просто передать строку выражения в качестве параметра запуска процесса и позволить ему проанализировать / выполнить ее.Я по-прежнему интересуюсь альтернативами, но, полагаю, проще не будет.

1 Ответ

0 голосов
/ 16 декабря 2011

Выполнение каждой операции в отдельном домене приложений - если возможно - будет проще, чем IPC.

...