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