我为照片选择器任务和摄像机选择器任务添加了以下扩展方法。
public static Task<TTaskEventArgs> ShowAsync<TTaskEventArgs>(this ChooserBase<TTaskEventArgs> chooser) where TTaskEventArgs : TaskEventArgs
{
var taskCompletionSource = new TaskCompletionSource<TTaskEventArgs>();
EventHandler<TTaskEventArgs> completed = null;
completed = (s, e) =>
{
chooser.Completed -= completed;
taskCompletionSource.SetResult(e);
};
chooser.Completed += completed;
chooser.Show();
return taskCompletionSource.Task;
}
我在按钮点击中调用了这个方法,就像这样,
var photoResult = await new PhotoChooserTask().ShowAsync();
if (photoResult.TaskResult == TaskResult.OK)
{
// set the photo to image source.
}
添加之后,每件事情都运行正常,但我的问题是,通过设置逻辑删除模式调用任务的时间,我的等待后的代码没有执行(即已完成的事件)。我如何解决这种情况,我期待一个答案,解决我在上述实现(async / await)上的问题。不期望在构造函数中注册事件的答案。
答案 0 :(得分:2)
我看到你正在关注my article,但事实证明我忘了我当前的解决方案不适用于墓碑,正如文章评论中有人指出的那样。
我正准备修复此问题,一旦我准备好就会更新线程!