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

問題:

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

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

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;
        }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章