public static void proxyTest(ClientConfig config) { ProxyFactory fac = new ProxyFactory(config); Connect conn = fac.GetConnect(); ISCaculator caculator = conn.GetInstance <ISCaculator>(); while (true) { var c = Console.ReadLine(); int count = 10000; if (!string.IsNullOrEmpty(c)) { count = Convert.ToInt32(c); } Stopwatch sw = new Stopwatch(); sw.Start(); var t1 = Task.Run(() => { for (int i = 0; i < count; i++) { var r = caculator.Add(1, -100); } }); var t2 = Task.Run(() => { for (int i = 0; i < count; i++) { var r = caculator.Add(1, -100); } }); var t3 = Task.Run(() => { for (int i = 0; i < count; i++) { var r = caculator.Add(1, -100); } }); var t4 = Task.Run(() => { for (int i = 0; i < count; i++) { var r = caculator.Add(1, -100); } }); Task.WaitAll(t1, t2, t3, t4); sw.Stop(); //Console.WriteLine("RPC对服务器完成{0}次单向调用,运行时间:{1} 秒{2}毫秒", count * 4, sw.Elapsed.Seconds, sw.Elapsed.Milliseconds); Console.WriteLine("RPC对服务器完成{0}次递归调用(服务器方法内部再调用一次客户端的方法),运行时间:{1} 秒{2}毫秒", count * 4, sw.Elapsed.Seconds, sw.Elapsed.Milliseconds); } }
public static void MessageTest(ClientConfig config) { ProxyFactory fac = new ProxyFactory(config); Connect conn = fac.GetConnect(); ISCaculator obj = conn.GetInstance <ISCaculator>("Caculator"); while (true) { string c = Console.ReadLine(); if (!string.IsNullOrEmpty(c)) { obj.BroadCast("给大家来个广播"); } } }