Ejemplo n.º 1
0
        /// <summary>
        /// 测试
        /// </summary>
        private static void test()
        {
            int left = TcpInternalStreamClientPerformance.Client.Left;

            AutoCSer.TestCase.TcpStreamServerPerformance.IOpenStreamServer client = AutoCSer.Net.TcpOpenStreamServer.Emit.Client <AutoCSer.TestCase.TcpStreamServerPerformance.IOpenStreamServer> .Create();

            using (AutoCSer.Net.TcpOpenStreamServer.Emit.MethodClient methodClient = client as AutoCSer.Net.TcpOpenStreamServer.Emit.MethodClient)
            {
                tcpClient = methodClient._TcpClient_;
                TcpInternalStreamClientPerformance.Client.SendCount = TcpInternalStreamClientPerformance.Client.ReceiveCount = 0;

                TcpInternalStreamClientPerformance.Client.Start(TcpInternalStreamClientPerformance.ClientTestType.Synchronous, TcpInternalStreamClientPerformance.Client.Count / 10);
                int threadCount = 64;
                for (int count = TcpInternalStreamClientPerformance.Client.ThreadCount = threadCount, right = TcpInternalStreamClientPerformance.Client.Count / 10 / threadCount; count != 0; --count)
                {
                    AutoCSer.Threading.ThreadPool.TinyBackground.Start(new ClientSynchronous {
                        Client = client, Left = left, Right = right
                    }.Run);
                }
                Console.WriteLine("thread " + threadCount.toString() + " end " + TcpInternalStreamClientPerformance.Client.Time.ElapsedMilliseconds.toString() + "ms");
                wait();
                sleep();

                TcpInternalStreamClientPerformance.Client.Start(TcpInternalStreamClientPerformance.ClientTestType.Synchronous, TcpInternalStreamClientPerformance.Client.Count / 100);
                for (int right = TcpInternalStreamClientPerformance.Client.Count / 100; right != 0;)
                {
                    if (client.Add(left, --right).Value != left + right)
                    {
                        ++TcpInternalStreamClientPerformance.Client.ErrorCount;
                    }
                }
                TcpInternalStreamClientPerformance.Client.Time.Stop();
                TcpInternalStreamClientPerformance.Client.WaitHandle.Set();
                Console.WriteLine("thread 1 end " + TcpInternalStreamClientPerformance.Client.Time.ElapsedMilliseconds.toString() + "ms");
                wait();
                sleep();
            }
        }