我用的是
AsyncDelegateCommand
上课时间
this blog post
但是我很难知道该怎么处理
action
代表。我创建以下命令:
new AsyncDelegateCommand(
readFile, // action to perform
() => shouldReadFile, // can the action be executed?
obj => readFileFinished(true), // run after action successfully completed
ex => readFileFinished(false) // run after action failed
)
我在期待我的
readFile
被抓住的方法
Error
财产
RunWorkerCompletedEventArgs
BackgroundWorker.RunWorkerCompleted
处理程序。但是,当我运行我的应用程序时,我会遇到一个异常
扔东西,所以我从来没有把它交给我的教练
RunWorkerCompleted
. 这是我的
施工单位:
public AsyncDelegateCommand(Action action, Func<bool> canExecute,
Action<object> completed, Action<Exception> error)
{
if (null == action)
{
throw new ArgumentNullException("action");
}
_worker.DoWork += (sender, e) =>
{
CommandManager.InvalidateRequerySuggested();
// This can possibly throw an exception:
action();
};
_worker.RunWorkerCompleted += (sender, e) =>
{
if (null != completed && null == e.Error)
{
completed(e.Result);
}
// I never make it here:
if (null != error && null != e.Error)
{
error(e.Error);
}
CommandManager.InvalidateRequerySuggested();
};
_canExecute = canExecute;
}
我想要的是任何例外
行动
被抓住并塞进
错误
用于处理
RunWorker已完成
. 我怎样才能做到这一点?