public class FormServer : Form { private SocketServer server; public FormServer() { InitializeComponent(); textBoxIP.Text = SocketServer.GetLocalIP(); server = new SocketServer(); server.ClientConnected += new ServerHandler(server_ClientConnected); server.ClientDataReceived += new ServerHandler(server_ClientDataReceived); server.ClientDisconnected += new ServerHandler(server_ClientDisconnected); // creamos el delegate para poder manipular los eventos de los subprocesos // y sincronizar en el thread corriente // todo : como se lia esta mierda ... clientConnectedCallBack = new DelegateClientConnected(onClientConnected); } delegate void DelegateClientConnected(ServerArgs args); DelegateClientConnected clientConnectedCallBack; void server_ClientConnected(object sender, ServerArgs args) { Invoke(clientConnectedCallBack,new object[]{args}); } void onClientConnected(ServerArgs arg) { UpdateClientList(); }