《C#併發編程經典實例》學習筆記—2.2 返回完成的任務

問題:

如何實現一個具備異步簽名的同步方法。異步

從異步接口或基類繼承代碼,但但願用同步方式實現方法。
解釋一下所謂的異步接口和異步基類。例如以下代碼code

interface IMyAsyncInterface
{
    Task<int> GetValueAsync();
}

即,接口和基類中包含了以Task爲返回結果的方法,此接口或基類,即爲異步接口或異步基類。繼承

同步方式實現Task方法接口

class Class1 : IMyAsyncInterface
{
    Task<int> GetValueAsync() 
    {
        return Task.FromResult(1);
    }
}

或者同步

class Class1 : IMyAsyncInterface
{
        Task<int> GetValueAsync()
        {
            var tcs = new TaskCompletionSource<int>();
            tcs.SetResult(1);
            return tcs.Task;
        }
}
相關文章
相關標籤/搜索