Kru*_*lur 3 c# xamarin.ios async-await
考虑这个iOS 6 API调用:
eventStore.RequestAccess(EKEntityType.Event, (granted, error) => {
if(granted)
{
events = this.GetLocalCalendarEvents(eventStore);
}});
Run Code Online (Sandbox Code Playgroud)
我有一些代码可以访问日历并读取事件.在iOS5上,这只是有效但在iOS6上我必须首先要求访问,如果被授权,则开始阅读.我想知道我是否能以某种方式将它包装成async/await的组合以隐藏丑陋的委托.
有任何想法吗?
你可以使用TaskCompletionSource:
public Task<bool> DoSomethingAsync()
{
var taskSource = new TaskCompletionSource<bool>();
//Call some asynchronous Apple API
NSSomeAppleApi.DoSomething(error =>
{
if (error != null)
taskSource.SetException(new Exception(error.LocalizationDescription));
else
taskSource.SetResult(true);
});
return taskSource.Task;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |