• 异步调用


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

    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的话,可以到这里看到原文。不过俺的例子好像比它的更明显些

  • 相关阅读:
    【题解】P3796【模板】AC自动机(加强版)
    【模板】P3806点分治1
    【题解】P2602[JZOI2010]数字计数
    【题解】P2444 病毒
    【题解】[P3557 POI2013]GRA-Tower Defense Game
    【题解】DZY Loves Chinese
    【题解】[Ghd]
    【题解】CF264B Good Sequences
    【题解】P3162CQOI2012组装
    【题解】P2279消防局的设立
  • 原文地址:https://www.cnblogs.com/BigTall/p/63945.html
Copyright © 2020-2023  润新知