1

我正在寻找具有以下签名的扩展方法:

public static IObservable<DialogResult> ShowDialog(this Form form);

我不知道如何让它工作。这是我到目前为止所拥有的:

Task<DialogResult> task = Task.Factory.StartNew(() =>
{
    return form.ShowDialog();
});
return task.ToObservable();

编辑:酷,谢谢大家。我真的需要更多地阅读这些东西!

4

1 回答 1

0

我想这会起作用,尽管我不明白这一点。

public static class Extensions
{
    public static IObservable<DialogResult> ShowDialogObservable(this Form form)
    {
        return Observable.Create<DialogResult>(o =>
        {
            o.OnNext(form.ShowDialog());
            return Disposable.Empty;
        });
    }
}
于 2016-12-15T16:36:53.033 回答