C#で非同期lambda式を使用して委任インスタンスを初期化する方法

4978 ワード

次に、.NET Coreコンソールプロジェクトを使用して、非同期lambda式を使用して、Func>、Func、Actionの3つの委任インスタンスを初期化する方法を示します.
Main関数を非同期関数に改造する方法も示した.
using System;
using System.Threading.Tasks;

namespace NetCoreAsyncDelegate
{
    class Program
    {
        //  Main        Task  ,   async         ,    Main    void,           ,.NET        
        static async Task Main(string[] args)
        {
            //    Func>    ,    lambda       Func>    ,     lambda   ,    lambda       async   ,         await           ,  Func>        Task  ,         ,   lambda           100
            Funcint>> delegateFuncTaskReturn = async () =>
            {
                await Task.Delay(1000);

                return 100;
            };

            //  await   ,    Func>        
            int returnedValue = await delegateFuncTaskReturn();

            Console.WriteLine("delegateFuncTaskReturn has been done and returned value {0}", returnedValue);

            //    Func    ,    lambda       Func    ,     lambda   ,    lambda       async   ,         await           ,  Func        Task  ,         ,   lambda          
            Func delegateFuncTaskNoReturn = async () =>
            {
                await Task.Delay(1000);
            };

            //  await   ,    Func        
            await delegateFuncTaskNoReturn();

            Console.WriteLine("delegateFuncTaskNoReturn has been done");

            //    Action    ,    lambda       Action    ,     lambda   ,    lambda       async   ,         await           ,  Action        void,         ,   lambda          
            Action delegateActionTask = async () =>
            {
                await Task.Delay(1000);
                Console.WriteLine("delegateActionTask has been done");
            };

            //  Action       Task Task  ,      Main     await          ,  Main        Action          
            delegateActionTask();

            Console.WriteLine("Press any key to end...");
            Console.ReadKey();
        }
    }
}

上の例が皆さんに役に立つことを願っています~