WindowsBaseパッケージに入ってる
System.Windows.ThreadingのDispatcherを使えば、
別のスレッド上でからメインスレッドでExceptionを起こすことができる。
非同期関数~~~System.Windows.Threading.Dispatcher.CurrentDispatcher.Invoke(()=>{thrownewException("メインスレッドでExceptionが起こる");});~~~
キャッチするにはApplication.TheradExceptionにイベントを設定しておくと、
ハンドリングされなかったExceptionが飛んでくる
System.Windows.Forms.Application.ThreadException+=newSystem.Threading.ThreadExceptionEventHandler(this.OnThreadException);privatevoidOnThreadException(objectsender,ThreadExceptionEventArgse){}
Xamarin.Androidは以下でできる
Exception発生
非同期関数~~~~Xamarin.Forms.Device.BeginInvokeOnMainThread(()=>{thrownewException("メインスレッドでExceptionが起こる");});~~~
キャッチ
AppDomain.CurrentDomain.UnhandledException+=newUnhandledExceptionEventHandler(OnThreadException);