欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

《C#并发编程经典实例》学习笔记—2.2 返回完成的任务

程序员文章站 2022-05-14 08:24:02
问题: 如何实现一个具有异步签名的同步方法。 从异步接口或基类继承代码,但希望用同步方式实现方法。 解释一下所谓的异步接口和异步基类。例如如下代码 即,接口和基类中包含了以Task为返回结果的方法,此接口或基类,即为异步接口或异步基类。 同步方式实现Task方法 或者 ......

问题:

如何实现一个具有异步签名的同步方法。

从异步接口或基类继承代码,但希望用同步方式实现方法。
解释一下所谓的异步接口和异步基类。例如如下代码

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;
        }
}