zoukankan      html  css  js  c++  java
  • .NET Remoting 经典远程回调模型(二)

             为了简化客户端代码,可以将远程对象实现为异步操作的形式。

             那么,当异步操作完成时如何通知客户端呢??

             这里,来说下第二种,使用定制委托实现回调。

    接着上个SimpleMath类说,

    public class SimpleMath:MarshalByRefObject

    {

         private delegate int opDelegate(int n1, int n2);

         public delegate void ClientCallbackDelegate(int result);

         public int Add(int n1, int n2)

       {

            return n1+n2;

        }

         public void AsyncAdd(int n1,int n2,ClientCallbackDelegate callback)

        {

              opDelegate op=  new opDelegate(Add);

               op.BeginInvoke(n1,n2,new AsycCallback(DoClientCallback),callback);

          }

         private void DoClientCallback(IAsyncResult ar)

         {

              AsyncResult asyncResult=(AsyncResult)ar;

              opDelegate  op= (opDelegate)asyncResult.AsyncDelegate;

             int result=op.EndInvoke(ar);

             ClientCallbackDelegate callback=(ClientCallbackDelegate)ar.AsyncState;

             callback(result);

          }

    }

    //以下这个类是重点:

    //必须把其元数据部署到服务器端;

    //其实现要在客户端。

    //此时,原来的客户端成了服务端,服务端成了客户端。

    public class SimpleMathResult:MarshalByRefObject

    {

          public void MathCallback(int result)

           {

                 Console.WriteLine(result.tostring());

             }

    }

    class ClientMain

    {

         static void Main(string[] args)

         {

                RemotingConfguration.Configure("MathClient.exe.config");

               SimpleMath math= new SimpleMath();

               SimpleMathResult mathResult= new SimpleMathResult();

               math.AsyncAdd(5,2,new SimpleMath.ClientCallbackDelegate(mathResult.MathCallback));

          }

    }

    其实重点还是怎样传递委托实例,去调用我们对应的方法,这点很重要。

  • 相关阅读:
    你真的理解clear:both吗?
    动态修改DataSet的列名,GridView动态绑定列
    word2007 添加批注后怎样让文档内容不向左移动 保持不变
    【转载】哪个OA比较好,18家常见OA系统全方位大阅兵
    短线选股的四大核心要素
    ASPX页面的缓存OutputCache
    OA产品的边际竞争者
    老股民经验之谈 这些股票买入必死无疑
    Word 2007批注及批注者姓名修改技巧
    ASP.NET中httpmodules与httphandlers全解析
  • 原文地址:https://www.cnblogs.com/Mayvar/p/wanghonghua20091204.html
Copyright © 2011-2022 走看看