"Маршал" вызывает через контекст синхронизации наиболее легко?
У меня есть компонент, который хранит кэш на основе каждого потока, но в некоторых приложениях мне нужно разделить кэш между несколькими потоками.
Я не возражаю против размещения компонента в потоке, а затем маршалинга вызовов в/на этот поток, чтобы разделить кэш между другими потоками - на самом деле это мой план. Таким образом, он размещается в потоке а и получает доступ к B,C(и A) путем маршалирования всех вызовов из других потоков вплоть до A.
но мне нужно знать Самый простой способ, чтобы это произошло.
Я очень новичок в контекстах синхронизации в .NET.
Обычно то, что я делаю для выполнения погружения и размещения вызовов между потоками, - это ISynchronizeInvoke.Invoke/BeginInvoke
Проблема в том, что я не хочу оборачивать классы этого компонента. Существует 30 различных организаций, каждая из которых имеет множество членов.
Я знаю.Сеть может обернуть это для меня. Я знаю, что он может "маршалить" - даже если мне *придется* дать ему ISynchronizeInvoke или эквивелантный механизм где-то. Я сохраню одну, если понадобится.
Но как мне туда попасть?NET, чтобы обернуть вызовы для меня и маршаллировать их по потокам без необходимости вручную создавать оболочку?
Что я уже пробовал:
Я рассматривал возможность удаленного доступа к .NET, но это действительно тяжело и не совсем то, что я хочу.
Я хочу что-то inproc и относительно легкое. Я даже не знаю, где начать искать это. Мои поиски в google не дают мне того, что я хочу.