示例#1
0
        static void Main(string[] args)
        {
            Request request = new Request()
            {
                Id = 1,
                Name = "Rock",
                Address = "携程"
            };

            Response response = new Response();

            TempOrder tmpOrder = new TempOrder();

            List<LogicException> exception = new List<LogicException>();


            try
            {
                DoWorking canBooking = new DoWorking(tmpOrder.CanBooking);

                IAsyncResult canBookingResult = canBooking.BeginInvoke(request, response, new AsyncCallback(CallBackFunction), null);

                DoWorking saveOrder = new DoWorking(SaveOrder);

                IAsyncResult saveOrderResult = saveOrder.BeginInvoke(request, response, new AsyncCallback(CallBackFunction), null);

                DoWorking paymentInfo = new DoWorking(tmpOrder.GetPaymentInfo);

                IAsyncResult paymentInfoResult = paymentInfo.BeginInvoke(request, response, new AsyncCallback(CallBackFunction), null);


                bool result = true;
                int count = 0;
                while (result && count < 100000)
                {
                    count++;
                    if (canBookingResult.IsCompleted && saveOrderResult.IsCompleted && paymentInfoResult.IsCompleted)
                    {
                        Console.WriteLine("全部完成.....");
                        result = false;
                    }
                    else
                    {
                        Console.WriteLine("还没有全部完成....");
                        result = true;
                    }
                }

                //canBookingResult.

                Console.WriteLine(response.ToString());
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.WriteLine("处理异常了,,"+ex.Message);
                Console.ReadKey();
                //throw;
            }
        }
示例#2
0
 public static void SaveOrder(Request request, Response response)
 {
     response.Name = request.Name;
     Thread.Sleep(500);
     Console.WriteLine("SaveOrder Woking....");
     request.HaveException();
 }
示例#3
0
 public void GetPaymentInfo(Request request, Response response)
 {
     Console.WriteLine("GetPaymentInfo Woking....");
     response.Address = request.Address;
     Thread.Sleep(200);
 }
示例#4
0
        public void CanBooking(Request request, Response response)
        {
            Console.WriteLine("CanBooking Woking....");
            response.Id = request.Id;
            Thread.Sleep(200);

        }