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