我正在寻找使用以下签名创建扩展方法:
public static IObservable<DialogResult> ShowDialog(this Form form);
我不知道如何让它发挥作用。这就是我到目前为止所做的:
Task<DialogResult> task = Task.Factory.StartNew(() =>
{
return form.ShowDialog();
});
return task.ToObservable();
编辑:很酷,谢谢你们。我真的需要再读一些这些东西了!
答案 0 :(得分: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;
});
}
}