Hi we're trying to build a "web" of connected clients, where each client.exe also provides the service host that remote clients connect to.
The idea is that whenever a remote client connects to the local client, a form is used to visually show the connected remote clients. Whenever a new remote client connects or disconnects, the form is updated from the service isntance.
However, the local client is also accessing the same form for various reasons (provide the user ways to interact with the remote clients).
My question is: when would I run into problems with synchronization and thread problems when both the client proxy and the service host access the form? The service is configured with ConcurrencyMode.Single and Session.Required. The client is a singleton. I am already using locks to synchronize access to members, callbacks from the service also are thread safe. Still, can there be deadlocks? The load is minimal: at most 2 clients would send data at once, and the total number of clients would not exceed 25. Basically, the application would be used so that ONE (1) client can talk to ONE other client.
NB: I undertand there is also the possibility of running only one WCF service on a dedicated machine that all clients can connect to. I am still asking about this particular scenario, where each client also provides a service host. Thanks.