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