浏览主站 | 站长工具 | 新闻资讯 | 站长学院 | 站长盈利 | HTML教程 | 网址导航 | 站长周刊 | 会员投稿 | 滚动新闻 | RSS
发新话题
打印

Remoting之五:异步操作

Remoting之五:异步操作

[[wiki]wiki[/wiki]][/wiki]如果你还不知道什么是异步也不要紧,我们还是来看实例,通过实例来理解才是最深刻的。
在Remoting中,我们可以使用以下几种异步的方式:
1、普通异步
2、回调异步
3、单向异步
一个一个来说,首先我们这么修改我们的远程[wiki]对象[/wiki]:
Word-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOT[wiki]Tom[/wiki]: windowtext 0.5pt solid">
public int ALongTimeMethod(int a,int b,int time)
        {
            Console.WriteLine("异步方法开始");
            System.Threading.Thread.Sleep(time);
            Console.WriteLine("异步方法结束");
            return a+b;
        }
这个方法传入2个参数,返回2个参数和表示方法执行成功,方法需要time毫秒的执行[wiki]时间[/wiki],这是一个长时间的方法。
如果方法我们通过异步远程调用,这里需要注意到这个方法输出的行是在[wiki]服务器[/wiki]端输出的而不是客户端。因此,为了[wiki]测试[/wiki]简单,我们还是在采用本地对象,在实现异步前我们先来看看同步的调用方法,为什么说这是一种阻塞?因为我们调用了方法主线程就在等待了,看看测试:
Word-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
DateTime dt=DateTime.Now;
Remote[wiki]object[/wiki].MyObject app=new RemoteObject.MyObject();
Console.WriteLine(app.ALongTimeMethod(1,2,1000));
            Method();
            Console.WriteLine("用了"+((TimeSpan)(DateTime.Now-dt)).TotalSeconds+"秒");
            Console.ReadLine();
假设method方法是主线程的方法,需要3秒礫wiki]氖[/wiki]奔洌

TOP

发新话题