, ben gözlenemeyen istisnaları göz ardı etmek böyle yapardı: Bu iyi bir uygulama tartışmalıdır olsunMonoTouch'da async/wait ile denetlenmeyen istisnalar nasıl yok sayılır? MonoTouch önceki sürümlerinde
TaskScheduler.UnobservedTaskException += delegate(object sender, UnobservedTaskExceptionEventArgs e) {
Console.WriteLine (e);
e.SetObserved();
};
ama async
/await
anahtar kelimeler ile aynı etkiyi elde etmek bilmek istiyorum now officially supported in Xamarin.iOS 6.4. İşte
async void OnClick (object sender, EventArgs e)
{
await Task.Run (() => { throw new Exception(); });
}
, ayıklayıcı AsyncVoidMethodBuilder
yılında duraklar:
Bu -ama sözde changed the behaviour so unobserved exceptions don't crash the app o .NET 4.5 okumak istisnaların UIKit eşitleme bağlamına gönderilip gönderilmediği durumlarda yardımcı olmaz.
MonoTouch içinde await
gelen gözlemlenmemiş istisnalar görmezden bir yolu var mı?
"AsyncVoidMethodBuilder" içindeki "duraklamalar" dan söz ediyorsunuz. Bu devam ederseniz istisna devam ederse sonunda işleyiciniz tarafından yutulur? Bu, yalnızca bu hata ayıklayıcının bu özel durumun sonlandırıldığı bir durum mu? Ayrıca, başvuruda bulunduğunuz makalede, .NET 4. gibi istisna çalışmalarını yapmak için bazı app.config ayarları yer alır. Bu yararlı olur mu? –
@Brad: Devam edersem devam edersek, bu işlem çöküyor çünkü istisna UI iş parçacığı üzerinde 'UIKitSynchronizationContext' temel alınarak yeniden atılıyor. Yapılandırma ayarları, daha sıkı davranmak için vardır * bu yüzden yardım etmemeleri gerekir. Ancak geçerli bir noktaya yükselttiniz; Önceki sürümlerde, UI iş parçacığı üzerinde atılmış olsa da, Gözetlenmeyen işleyicideki istisnaları yakalayabildim. –
Görevler, AppDomain vb. Için çeşitli Gözlemlenmemiş işleyiciler vardır. UI'ye özgü olanı kullanmayı deneyin. Bekleme SynchronizationContext –