0% found this document useful (0 votes)
3 views

Application Thread

The document contains a Visual Basic .NET application that defines a Windows Forms application with a main form containing four buttons. Each button performs different actions such as showing a message box, throwing an exception, and exiting the application or the application thread. It also includes event handlers for application exit, idle state, and threading exceptions, logging messages to the debug output.

Uploaded by

keysha.shanum123
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Application Thread

The document contains a Visual Basic .NET application that defines a Windows Forms application with a main form containing four buttons. Each button performs different actions such as showing a message box, throwing an exception, and exiting the application or the application thread. It also includes event handlers for application exit, idle state, and threading exceptions, logging messages to the debug output.

Uploaded by

keysha.shanum123
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Application Thread

Imports System.Windows.Forms

Public Class Form1


Inherits System.Windows.Forms.Form

Public Sub New()


MyBase.New()
InitializeComponent()
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

Private components As System.ComponentModel.IContainer

Friend WithEvents button4 As System.Windows.Forms.Button


Friend WithEvents button3 As System.Windows.Forms.Button
Friend WithEvents button2 As System.Windows.Forms.Button
Friend WithEvents button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent
()
Me.button4 = New System.Windows.Forms.Button()
Me.button3 = New System.Windows.Forms.Button()
Me.button2 = New System.Windows.Forms.Button()
Me.button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
Me.button4.Location = New System.Drawing.Point(24, 127)
Me.button4.Name = "button4"
Me.button4.Size = New System.Drawing.Size(144, 23)
Me.button4.TabIndex = 7
Me.button4.Text = "Show MessageBox"
'
Me.button3.Location = New System.Drawing.Point(24, 90)
Me.button3.Name = "button3"
Me.button3.Size = New System.Drawing.Size(144, 23)
Me.button3.TabIndex = 6
Me.button3.Text = "Throw Exception"
'
Me.button2.Location = New System.Drawing.Point(24, 53)
Me.button2.Name = "button2"
Me.button2.Size = New System.Drawing.Size(144, 23)
Me.button2.TabIndex = 5
Me.button2.Text = "Application.ExitThread"
'
'button1
'
Me.button1.Location = New System.Drawing.Point(24, 16)
Me.button1.Name = "button1"
Me.button1.Size = New System.Drawing.Size(144, 23)
Me.button1.TabIndex = 4
Me.button1.Text = "Application.Exit"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(192, 166)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.button4, M
e.button3, Me.button2, Me.button1})
Me.Name = "Form1"
Me.Text = "Applications"
Me.ResumeLayout(False)

End Sub

Shared Sub App_Exit(ByVal sender As Object, ByVal e As EventArgs)


System.Diagnostics.Debug.WriteLine("App_Exit")
End Sub

Shared Sub App_Idle(ByVal sender As Object, ByVal e As EventArgs)


System.Diagnostics.Debug.WriteLine("App_Idle")
End Sub

Shared Sub App_ThreadingException(ByVal sender As Object, ByVal e As Syste


m.Threading.ThreadExceptionEventArgs)
System.Diagnostics.Debug.WriteLine("App_ThreadException")
Dim msg As String = "A problem has occurred in this application." & vb
CrLf & vbCrLf & _
vbTab & e.Exception.Message & vbCrLf & vbCrLf & _
"Would you like to continue the application so that " & vbCrLf & _
"you can save your work?"
Dim res As DialogResult = MessageBox.Show(msg, "Unexpected Error", Mes
sageBoxButtons.YesNo)
If res = System.Windows.Forms.DialogResult.Yes Then Exit Sub
Application.Exit()
End Sub

Shared Sub DumpThreadID(ByVal name As String)


System.Diagnostics.Debug.WriteLine(name & " thread id= " & System.AppD
omain.GetCurrentThreadId().ToString())
End Sub

Shared Sub DummyThreadStart()


DumpThreadID("Dummy Thread")
AddHandler Application.ThreadExit, New EventHandler(AddressOf App_Thre
adExit)
End Sub

Shared Sub Main()


AddHandler Application.ThreadException, New System.Threading.ThreadExc
eptionEventHandler(AddressOf App_ThreadingException)
AddHandler Application.Idle, New EventHandler(AddressOf App_Idle)
AddHandler Application.ThreadExit, New EventHandler(AddressOf App_Thre
adExit)
AddHandler Application.ApplicationExit, New EventHandler(AddressOf App
_Exit)

DumpThreadID("UI Thread")
Dim dummythread As System.Threading.Thread = New System.Threading.Thre
ad(New System.Threading.ThreadStart(AddressOf DummyThreadStart))
dummythread.Start()

Application.Run(New Form1())

End Sub

Shared Sub App_ThreadExit(ByVal sender As Object, ByVal e As EventArgs)


System.Diagnostics.Debug.WriteLine("App_ThreadExit on thread id= " & S
ystem.AppDomain.GetCurrentThreadId().ToString())
End Sub

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System


.EventArgs) Handles button1.Click
Application.Exit()
End Sub
Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System
.EventArgs) Handles button2.Click
Application.ExitThread()
End Sub
Private Sub button3_Click(ByVal sender As System.Object, ByVal e As System
.EventArgs) Handles button3.Click
Throw New System.IO.FileLoadException()
End Sub

End Class

You might also like