public void WatchConnecting(Object socketObject) { try { //Console.WriteLine("服务器正在监听..."); SocketParameter socketParameter = socketObject as SocketParameter; while (running) { // 开始监听客户端连接请求,Accept方法会阻断当前的线程; // 一旦监听到一个客户端的请求,就返回一个与该客户端通信的套接字; Socket socketClient = _Watchsocket.Accept(); CallServiceThread callServiceThread = new CallServiceThread(socketClient); DelegateSocketMessage caller = new DelegateSocketMessage(callServiceThread.ReceiveMessage); IAsyncResult result = caller.BeginInvoke(socketParameter, null, null); string message = caller.EndInvoke(result); UIDelegateUIMessage(message); //Console.Write(message); } if (_Watchsocket != null) { _Watchsocket.Close(); _Watchsocket.Dispose(); } } catch { //Console.WriteLine(e.Message); if (_Watchsocket != null) { _Watchsocket.Close(); _Watchsocket.Dispose(); } } }
private string Print(string content) { CallServiceThread callService = new CallServiceThread(); Task <string> task = Task.Factory.StartNew <string>(() => callService.print(content));//异步执行 string result = task.Result; if ("ACK".Equals(result)) { return("SUCCESS"); } else { return(result); } }