《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;
        }
}
posted @ 2018-11-08 19:09 repeatedly 阅读(...) 评论(...) 编辑 收藏