If they need to execute logic in the main form, you will need this logic to run in the stream on which the main form was created. Thus, both the client and the server will need to have a link to the main form so that they can invoke Invoke or BeginInvoke on it (depending on whether the code in the main form should be synchronous or asynchronous). Therefore, you should probably start streams after loading the main form, so that you can pass a link to it to the client and server.
source
share