private static void Test3() { //XTrace.WriteLine("IsConsole={0}", Runtime.IsConsole); //Console.WriteLine("IsConsole={0}", Runtime.IsConsole); //XTrace.WriteLine("MainWindowHandle={0}", Process.GetCurrentProcess().MainWindowHandle); if (Console.ReadLine() == "1") { var svr = new ApiServer(1234) //var svr = new ApiServer("http://*:1234") { Log = XTrace.Log, //EncoderLog = XTrace.Log, StatPeriod = 10, }; // http状态 svr.UseHttpStatus = true; var ns = svr.EnsureCreate() as NetServer; ns.EnsureCreateServer(); var ts = ns.Servers.FirstOrDefault(e => e is TcpServer); //ts.ProcessAsync = true; svr.Start(); Console.ReadKey(); } else { var client = new ApiClient("tcp://127.0.0.1:335,tcp://127.0.0.1:1234") { Log = XTrace.Log, //EncoderLog = XTrace.Log, StatPeriod = 10, UsePool = true, }; client.Open(); TaskEx.Run(() => { var sw = Stopwatch.StartNew(); try { for (var i = 0; i < 10; i++) { client.InvokeAsync <Object>("Api/All", new { state = 111 }).Wait(); } } catch (Exception ex) { XTrace.WriteException(ex.GetTrue()); } sw.Stop(); XTrace.WriteLine("总耗时 {0:n0}ms", sw.ElapsedMilliseconds); }); TaskEx.Run(() => { var sw = Stopwatch.StartNew(); try { for (var i = 0; i < 10; i++) { client.InvokeAsync <Object>("Api/All", new { state = 222 }).Wait(); } } catch (Exception ex) { XTrace.WriteException(ex.GetTrue()); } sw.Stop(); XTrace.WriteLine("总耗时 {0:n0}ms", sw.ElapsedMilliseconds); }); TaskEx.Run(() => { var sw = Stopwatch.StartNew(); try { for (var i = 0; i < 10; i++) { client.InvokeAsync <Object>("Api/Info", new { state = 333 }).Wait(); } } catch (Exception ex) { XTrace.WriteException(ex.GetTrue()); } sw.Stop(); XTrace.WriteLine("总耗时 {0:n0}ms", sw.ElapsedMilliseconds); }); TaskEx.Run(() => { var sw = Stopwatch.StartNew(); try { for (var i = 0; i < 10; i++) { client.InvokeAsync <Object>("Api/Info", new { state = 444 }).Wait(); } } catch (Exception ex) { XTrace.WriteException(ex.GetTrue()); } sw.Stop(); XTrace.WriteLine("总耗时 {0:n0}ms", sw.ElapsedMilliseconds); }); Console.ReadKey(); } }