C# await async的使用

简单的使用

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("主线程测试开始..");
        AsyncMethod();
        Thread.Sleep(1000);
        Console.WriteLine("主线程测试结束..");
        Console.ReadLine();
    }
 
    static async void AsyncMethod()
    {
        Console.WriteLine("开始异步代码");
        var result = await MyMethod();
        Console.WriteLine("异步代码执行完毕");
    }
 
    static async Task<int> MyMethod()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("异步执行" + i.ToString() + "..");
            await Task.Delay(1000); //模拟耗时操作
        }
        return 0;
    }
}

等待一个结果

public bool test = false;

void OnGUI()
{
    if(GUI.Button(new Rect(0, 450, 300, 150), "Test"))
    {
        test = true;
    }
}

async void AsyncMethod()
{
    Debug.Log("开始异步代码");
    await MyMethod();
    Debug.Log("异步代码执行完毕");
}

async Task MyMethod()
{
    for (int i = 0; i < int.MaxValue; i++)
    {
        await Task.Delay(100);
        Debug.Log("等待...");
        if (test == true)
            break;
    }
    /*await Task.Run(() =>
    {
        while (true)
        {                    
            if (test == true)
            break;
        }
    });
}
PA_
发布了29 篇原创文章 · 获赞 15 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/u014528558/article/details/96574094