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