0

我为照片选择器任务和相机选择器任务添加了以下扩展方法。

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.
}

添加后一切正常,但我的问题是,通过设置墓碑模式调用任务的时间,我等待后的代码没有执行(即完成的事件)。我该如何解决这种情况,我期待一个能解决我在上述实现(异步/等待)上的问题的答案。没想到在构造函数中注册事件的答案。

4

1 回答 1

2

我看到你正在关注我的文章,结果我忘记了我目前的解决方案不适用于墓碑,正如文章评论中的某人所指出的那样。

我正在为此准备一个修复程序,一旦我准备好,我会更新线程!

于 2013-01-31T09:32:39.073 回答