【发布时间】:2018-12-25 18:30:49
【问题描述】:
我们可以在QueuedTask.Run() 中使用 Try/Catch 吗?
我觉得 Try/Catch 应该在 QueuedTask.Run() 之外,但我没有理由这样做。请说明是留还是留QueuedTask.Run()
public ICommand CmdEdit
{
get
{
return _cmdEdit ?? (_cmdEdit = new RelayCommand(() =>
{
QueuedTask.Run(() =>
{
try
{
if (_selectedObj != null && SelectedObjs.Count() == 1)
{
OnEditObj(_selectedObj);
}
}
catch (Exception ex)
{
DialogService.ShowPrompt(ex, null, DialogServiceMessage.Message_EditError, DialogServiceCaption.Caption_Exception, DialogServiceButtons.Ok, DialogServiceIcon.Exclamation);
OneGeo.ExceptionLogger.EventLogger.Log(ex);
}
});
}, () => (_selectedObj != null && _selectedObjs.Count() == 1)));
}
}
【问题讨论】:
-
我觉得很好。
-
请详细说明您的感受。也许你实际上有一个不同的问题?那就是同意上面的评论。
-
我只是在考虑是在 QueuedTask.Run() 外部还是内部使用 Try Catch。这对执行有何影响?请在此处帮助了解将其放置在外部或内部的区别。
-
我看到的唯一可能的问题是从后台线程调用 DialogService.ShowPrompt()。如果它处理正确,那么你很好。
-
我建议您尝试一下。移动
try catch。故意抛出异常。比较这两种情况的行为方式。说清楚我知道会发生什么。我正在教你钓鱼。
标签: c# .net arcgis arcgis-runtime