示例#1
0
        private ListAddressInfo testGetAddressN_one(object no)
        {
            var client = new ServiceKeeperReference.ServiceKeeperClient();

            var step = 20;
            var ret  = new ListAddressInfo();

            for (int i = 0; i < step * 2; i++)
            {
                var info = new GetAddressInfo();
                info.No = no.ToString();

                try
                {
                    info.BeginTime = DateTime.Now;

                    var address = client.GetServiceAddress("calc");

                    info.EndTime = DateTime.Now;
                    info.Message = address.Address;
                }
                catch (Exception ex)
                {
                    info.EndTime = DateTime.Now;
                    info.Message = "error";
                }

                ret.Add(info);
            }

            client.Close();

            return(ret);
        }
示例#2
0
        public void TestGetAddressN_MultiUser()
        {
            const int howMany = 20;

            Task <ListAddressInfo>[] tasks = new Task <ListAddressInfo> [howMany];

            for (int i = 0; i < howMany; ++i)
            {
                tasks[i] = Task.Factory.StartNew <ListAddressInfo>(testGetAddressN_one, i.ToString());
            }

            var taskRegister = Task.Factory.StartNew(TestRegister_One, "15");

            Task.WaitAll(tasks);

            ListAddressInfo allresult = new ListAddressInfo();

            foreach (var r in tasks)
            {
                allresult.AddRange(r.Result);
            }

            var sb = new StringBuilder();

            foreach (var r in allresult.OrderBy(addr => { return(addr.BeginTime); }))
            {
                sb.AppendFormat("#{0}# [{1}-{2}] => {3}\r\n",
                                r.No, r.BeginTime.ToString("yyyyMMdd-HHmmss.fff"), r.EndTime.ToString("yyyyMMdd-HHmmss.fff"), r.Message);
            }
            var msgToWrite = sb.ToString();

            var filepath = string.Format(@"D:\test\unittest_servicekeeper\{0}.txt",
                                         DateTime.Now.ToString("dd-HHmmss"));

            try
            {
                using (var writer = new StreamWriter(filepath, false))
                {
                    writer.Write(msgToWrite);
                }
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }