4

Xamarin.iOS 6.2.1、Xamarin Studio 4

我有这段代码ViewDidAppear()

this.refreshTask = Task.Factory.StartNew(() => this.RefreshContent());

try
{
    this.refreshTask.Wait();
}
catch(AggregateException aggEx)
{
    aggEx.Handle(x => false);
}

该方法RefreshContent()会导致IndexOutOfBoundsException访问数组的时间。如果我直接运行该方法,我可以看到这一点。如果我在任务中运行它,如上所述,应用程序不会失败,我最终会得到一个空的 tableview。根据这篇文章: http: //msdn.microsoft.com/en-us/library/dd537614.aspx上面的代码应该处理异常。但是,AggregateException永远不会触发。

我在这里做错了什么?还是 Xamarin.iOS / Mono 中的错误?

4

1 回答 1

2

您是否尝试在新任务委托中包含一个 try-catch ?像这样:

 Task.Factory.StartNew(() => {
        try {
             this.RefreshContent()
        } catch (Exception ex) {
             // Handle the exception
        }
  });
于 2013-03-23T15:20:48.917 回答