zoukankan      html  css  js  c++  java
  • 如何:使用回调方法实现异步 Web 服务客户端

    using System;
    using System.Runtime.Remoting.Messaging;
    using MyFactorize;

    class TestCallback
     {          
          public static void Main(){
                long factorizableNum = 12345;
                PrimeFactorizer pf = new PrimeFactorizer();

                //Instantiate an AsyncCallback delegate to use as a parameter
                //in the BeginFactorize method.
                AsyncCallback cb = new AsyncCallback(TestCallback.FactorizeCallback);

              // Begin the Async call to Factorize, passing in our
              // AsyncCalback delegate and a reference
              // to our instance of PrimeFactorizer.
                IAsyncResult ar = pf.BeginFactorize(factorizableNum, cb, pf);
               
                // Keep track of the time it takes to complete the async call
                // as the call proceeds.
             int start = DateTime.Now.Second;
             int currentSecond = start;
             while (!ar.IsCompleted){
                if (currentSecond < DateTime.Now.Second) {
                      currentSecond = DateTime.Now.Second;
                      Console.WriteLine("Seconds Elapsed..." + (currentSecond - start).ToString() );
                }
             }
             // Once the call has completed, you need a method to ensure the
             // thread executing this Main function
             // doesn't complete prior to the call-back function completing.
             Console.Write("Press Enter to quit");
             int quitchar = Console.Read();
          }
          // Set up a call-back function that is invoked by the proxy class
          // when the asynchronous operation completes.
          public static void FactorizeCallback(IAsyncResult ar)
          {
              // You passed in our instance of PrimeFactorizer in the third
              // parameter to BeginFactorize, which is accessible in the
              // AsyncState property.
              PrimeFactorizer pf = (PrimeFactorizer) ar.AsyncState;
              long[] results;

              // Get the completed results.
                results = pf.EndFactorize(ar);
             
              //Output the results.
                Console.Write("12345 factors into: ");
                int j;
                for (j = 0; j<results.Length;j++){
                      if (j == results.Length - 1)
                          Console.WriteLine(results[j]);
                      else
                          Console.Write(results[j] + ", ");
                }
          }
    }

  • 相关阅读:
    访问通讯录并设置联络人信息
    创建提醒事项
    iOS 高仿:花田小憩3.0.1
    iOS 手机淘宝加入购物车动画分析
    VTMagic 的使用介绍
    React Native 从入门到原理
    用户数据攻略-获取日历事件
    键盘收回方法
    提高jQuery执行效率需要注意几点
    你应该了解的jquery 验证框架
  • 原文地址:https://www.cnblogs.com/wzyexf/p/389750.html
Copyright © 2011-2022 走看看