問題:
如何實現一個具有異步簽名的同步方法。
從異步接口或基類繼承代碼,但希望用同步方式實現方法。
解釋一下所謂的異步接口和異步基類。例如如下代碼
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;
}
}