Manage unhandled exceptions that are thrown on secondary worker threads. : Exception « Windows Presentation Foundation « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Design Patterns
8.Development Class
9.Event
10.File Stream
11.Generics
12.GUI Windows Form
13.Language Basics
14.LINQ
15.Network
16.Office
17.Reflection
18.Regular Expressions
19.Security
20.Services Event
21.Thread
22.Web Services
23.Windows
24.Windows Presentation Foundation
25.XML
26.XML LINQ
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source
C# / C Sharp » Windows Presentation Foundation » ExceptionScreenshots 
Manage unhandled exceptions that are thrown on secondary worker threads.
Manage unhandled exceptions that are thrown on secondary worker threads.
  

<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">Thread</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)
        {
            Thread thread = new Thread(aMethod);
            thread.SetApartmentState(ApartmentState.STA);
            thread.IsBackground = true;
            thread.Start();
        }
        void aMethod(){
            try{
                string msg = string.Format("secondary on worker thread {0}.", Dispatcher.CurrentDispatcher.Thread.ManagedThreadId);
                throw new Exception(msg);
            }catch (Exception ex){
                int secondaryWorkerThreadId = Thread.CurrentThread.ManagedThreadId;
                Application.Current.Dispatcher.Invoke(
                    DispatcherPriority.Send,
                    (DispatcherOperationCallback)delegate(object arg)
                    {
                        string msg = string.Format("from secondary worker thread {0}.", secondaryWorkerThreadId);
                        throw new Exception(msg, ex);
                    }
                    null);
            }
        }

    }
}

   
    
  
Related examples in the same category
1.Cross Thread Exception Raising
2.Cross Thread Exception Raising WorkerThread
3.Check Exception type for DispatcherUnhandledException
4.Raise exception from button click eventRaise exception from button click event
5.Security ExceptionSecurity Exception
6.Throw Handled ExceptionThrow Handled Exception
7.Throw Unhandled ExceptionThrow Unhandled Exception
8.Throw Unhandled Exception From ThreadThrow Unhandled Exception From Thread
9.Customize UpdateSourceExceptionFilterCustomize UpdateSourceExceptionFilter
10.Throw Exception from button click actionThrow Exception from button click action
11.Catch XamlParseExceptionCatch XamlParseException
12.Manage unhandled exceptions that are thrown on secondary user interface (UI) threads.
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.