VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 569|回复: 1

异步调用

[复制链接]

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-28 14:20:01 | 显示全部楼层 |阅读模式
// 这是一个异步调用的例子,SimpleMath中有一个方法BeginAdd的异步方法。谁能把SimpleNath类改成包含 beginxxx 和 endxxx 两个方法的形式,就像socket 中的beginxxx 和 endxxx 那样的异步调用。



using System;
using System.Runtime.Remoting.Messaging;
using System.Threading;

namespace DemoDelegate
{
        public delegate int AddDelegate(int n1,int n2);
        class Class1
        {
                static void Main(string[] args)
                {
                        SimpleMath math = new SimpleMath();
                        IAsyncResult asyncResult = math.BeginAdd(2,5,new AsyncCallback(AddCallback));
                        Console.WriteLine("按回车终止程序....");
                        Console.Read();
                }

                // 加法回调函数
                private static void AddCallback(IAsyncResult ar)
                {
                        AsyncResult async = (AsyncResult)ar;
                        AddDelegate d= (AddDelegate)async.AsyncDelegate;
                        int result = d.EndInvoke(ar);
                        Console.WriteLine("2 + 5 = " + result);
                       
                }
        }

        public class SimpleMath
        {
                // 加法运算
                public int Add(int n1,int n2)
                {
                        Thread.Sleep(2000);
                        return n1 + n2;
                }

                // 使用异步来处理的加法运算       
                public System.IAsyncResult BeginAdd(int n1,int n2, AsyncCallback callback )
                {
                        AddDelegate d = new AddDelegate(this.Add);
                        return d.BeginInvoke(n1,n2,callback, null);
                }
        }
}
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-3-24 10:15:01 | 显示全部楼层
CS程序中,采用remoting双方对等通信时候,如果我不使用事件重现器模式,直接向服务器传送定置的委托,然后服务器在回调可户端的方法,实现了远程回调。这样的方法是不是也一样双机通信??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表