Boas Marcel,
Você pode utilizar o WCF para isso. Talvez criando um serviço com o modelo de gerenciamento de instância definido como Single, o que quer dizer que ele será compartilhado com todos aqueles que acessam o serviço.
Com isso, você não precisa necessariamente que a sua coleção seja estática, pois todos os membros que são declarados dentro da classe que representa o serviço, serão já compartilhados com aqueles
que a utilizam, como disse acima.
Se tudo isso estiver dentro da mesma máquina, utilizar o binding NetNamedPipeBinding pode performar melhor.
http://www.israelaece.com