C# 非同步呼叫代理類的範例程式碼詳情

來源:互聯網
上載者:User
非同步呼叫代理類
AsyncInvokeProxy.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace AsyncInvokeDemo{    public class AsyncInvokeProxy<T1>    {        private Action<T1> _task;        public AsyncInvokeProxy(Action<T1> task)        {            this._task = task;        }        public void BeginEnvoke<T2>(T1 args, Action<T2, Exception> cb, T2 cbArgs)        {            this._task.BeginInvoke(args, new AsyncCallback((r) =>            {                try                {                    cb(cbArgs, null);                    this._task.EndInvoke(r);                }                catch (Exception ex)                {                    cb(cbArgs, ex);                }            }), cbArgs);        }    }}

使用:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace AsyncInvokeDemo{    class Program    {        static void Main(string[] args)        {            Action<A> test = (a) =>            {                Console.WriteLine("start to invoke");                for (int i = 0; i < 1000; i++)                {                    Console.WriteLine(i);                }                Console.WriteLine("invoke args aint : {0},astr: {1} ", a.aInt, a.aStr);            };            AsyncInvokeProxy<A> proxy = new AsyncInvokeProxy<A>(test);            proxy.BeginEnvoke<B>(new A { aInt = 1, aStr = "astr" }, (b, ex) =>            {                if (ex != null)                {                }                Console.WriteLine("callback ret bint: {0},bstr: {1}", b.bInt, b.bStr);            }, new B { bInt = 2, bStr = "bstr" });            Console.ReadLine();        }    }}

以上就是C# 非同步呼叫代理類的範例程式碼詳情的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.