/// <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(); } }