Use Application.Current.Dispatcher.Invoke to throw an exception
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication1.MainWindow"
Height="200" Width="400">
<Button Click="aClick">click</Button>
</Window>
//File:Window.xaml.cs
using System;
using System.Threading;
using System.Windows;
using System.Windows.Threading;
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Title = string.Format("Running on Main UI Thread {0}", Thread.CurrentThread.ManagedThreadId);
}
void aClick(object sender, RoutedEventArgs e)
{
Application.Current.Dispatcher.Invoke(DispatcherPriority.Send,(DispatcherOperationCallback)delegate(object arg)
{
string msg = string.Format("Exception forwarded from secondary UI thread {0}.", 1);
throw new Exception(msg, null);
}
, null);
}
}
}
Related examples in the same category