public static SocketMessage GetObjectMessage(ITransferableObject obj) { return(new SocketMessage() { MsgType = MessageType.Object, objMessage = new SocketObjectMessage() { Object = obj } }); }
public Task SendToAllAsync(ITransferableObject obj, int objMark) { return(Task.Factory.StartNew(() => { lock (locker) { sendDone.Reset(); SocketMessage msg = SocketMessage.GetObjectMessage(obj); byte[] buf = msg.GetBuffer(); Task[] tasks = (from client in clients select client.SendRawDataAsync(buf)).ToArray(); Task.Factory.ContinueWhenAll(tasks, (ts) => { sendDone.Set(); return; }); sendDone.WaitOne(); } })); }
public Task SendAsync(ITransferableObject obj, int objMark) { SocketMessage msg = SocketMessage.GetObjectMessage(obj); return(SendRawDataAsync(msg.GetBuffer())); }