コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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("给大家来个广播");
                }
            }
        }