以前のバージョンの MonoTouch では、監視されていない例外を無視するためにこれを行っていました。
TaskScheduler.UnobservedTaskException += delegate(object sender, UnobservedTaskExceptionEventArgs e) {
Console.WriteLine (e);
e.SetObserved ();
};
それが良い習慣であるかどうかは議論の余地がありますが、 Xamarin.iOS 6.4 で正式にサポートされるasync
ようになった/await
キーワードで同じ効果を達成する方法を知りたいです。
テストに使用するコードは次のとおりです。
async void OnClick (object sender, EventArgs e)
{
await Task.Run (() => { throw new Exception (); });
}
実行すると、デバッガーが一時停止しAsyncVoidMethodBuilder
ます:
.NET 4.5では動作が変更されたため、監視されていない例外によってアプリがクラッシュしないようになっていると読みましたが、例外が処理できない UIKit 同期コンテキストにポストされた場合、これは役に立ちません。
await
MonoTouch で監視されていない例外を無視する方法はありますか?