Maison > développement back-end > Tutoriel C#.Net > Détails de l'exemple de code C# pour les appels asynchrones de classes proxy

Détails de l'exemple de code C# pour les appels asynchrones de classes proxy

黄舟
Libérer: 2017-03-03 11:26:10
original
1555 Les gens l'ont consulté

Classe de proxy d'appel asynchrone
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);
        }
    }
}
Copier après la connexion

Utilisation :

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();
        }
    }


}
Copier après la connexion

Ce qui précède est l'exemple de détails de code de l'appel asynchrone C# classe proxy Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal