hwhoops,看起来你发现了一个错误RegisterAsyncAction
,它应该返回IObservable<Unit>
同时,只需将更正后的版本复制粘贴到您的应用程序中,它只是一个扩展方法:
/// <summary>
/// RegisterAsyncAction registers an asynchronous method that runs
/// whenever the Command's Execute method is called and doesn't return a
/// result.
/// </summary>
/// <param name="calculationFunc">The function to be run in the
/// background.</param>
public static IObservable<Unit> RegisterAsyncAction(this IReactiveAsyncCommand This,
Action<object> calculationFunc,
IScheduler scheduler = null)
{
return This.RegisterAsyncFunction(x => { calculationFunc(x); return Unit.Default; }, scheduler);
}
你也可以ObserveOnDispatcher()
在 UIThread 上运行代码。
你实际上不需要这样做,RxUI 已经保证结果Register*
会在 UI 线程上返回。