zoukankan      html  css  js  c++  java
  • 异步调用

    因为程序运行速度比较慢,所以要把长时间运行的代码进行异步处理。所以做了一个如下的测试:

    Using directives

    namespace testASycCall
    {
        
    public delegate void AsyncCaller();
        
    class Program
        
    {
            
    void Call0()
            
    {
                Console.WriteLine(
    "Call0:Begin");
                System.Threading.Thread.Sleep(
    2000);
                Console.WriteLine(
    "Call0:End");
            }


            
    void Call1()
            
    {
                Console.WriteLine(
    "Call1:Begin");
                System.Threading.Thread.Sleep(
    2000);
                Console.WriteLine(
    "Call1:End");
            }



            
    static void Main(string[] args)
            
    {
                Program p 
    = new Program();
                Console.WriteLine(
    "ready async call0");
                AsyncCaller ac 
    = new AsyncCaller(p.Call0);
                Console.WriteLine(
    "invoke async call0");
                IAsyncResult ar 
    = ac.BeginInvoke(nullnull);
                Console.WriteLine(
    "call call1");
                p.Call1();
                Console.WriteLine(
    "call1 end");
                Console.WriteLine(
    "wait call 0 end");
                ar.AsyncWaitHandle.WaitOne();
                Console.WriteLine(
    "call 0 end");
            }

        }

    }


    程序运行结果如下:

    ready async call0
    invoke async call0
    call call1
    Call0:Begin
    Call1:Begin
    Call0:End
    Call1:End
    call1 end
    wait call 0 end
    call 0 end

    看起来并行的还比较明显!

    相同的例子在MSDN上面也有,如果你机器上装了MSDN的话,可以到这里看到原文。不过俺的例子好像比它的更明显些

  • 相关阅读:
    localhost/127.0.0.1:8080
    android要注意的小问题
    2016年度工作计划
    2016年度计划总结
    竞品分析的思路
    《竞品调研:抄也是一门学问》学习总结
    书籍名单
    2015年度计划-总结
    以前的博客
    和老板沟通学习记录
  • 原文地址:https://www.cnblogs.com/BigTall/p/63945.html
Copyright © 2011-2022 走看看