Imports System.Threading
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Public Gint As Integer
#Region "线程 读灯的状态"
Dim WorkThread As Thread
Private ThreadTimer As System.Threading.Timer = Nothing
Private _Flag As Boolean = False
Sub RunWork() '线程工作
Me._Flag = True
WorkThread = New Thread(New ThreadStart(AddressOf TestThreadTimer))
WorkThread.IsBackground = True
' WorkThread.Priority = ThreadPriority.AboveNormal
WorkThread.Name = "mainWorkThread"
WorkThread.Start()
End Sub
Private Sub TestThreadTimer() '设置自动运行时间
ThreadTimer = New System.Threading.Timer(New TimerCallback(AddressOf Me.Work), Nothing, 0, 100)
End Sub
Private Sub StopThread() '停止线程
Me._Flag = False
ThreadTimer.Dispose()
If WorkThread IsNot Nothing Then
Try
If WorkThread.ThreadState <> Threading.ThreadState.Stopped Then
WorkThread.Abort()
End If
Catch ex As ThreadAbortException
Thread.Sleep(500)
WorkThread.Abort()
Finally
WorkThread.Abort()
End Try
End If
WorkThread.Abort()
End Sub
Dim k As New TestSaveData
Dim i As Integer
Private Sub Work() '此函数为线程要执行的方法
k.Save()
i += 1
Console.WriteLine("原序号:" & i.ToString)
Thread.Sleep(500)
End Sub
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
RunWork()
End Sub
End Class
Public Class TestSaveData
Public Shared gsum As Integer
Public Sub Save()
Dim theConnectionString As String
theConnectionString = "Data Source=WANGLI;Initial Catalog=newdb;Persist Security Info=True;User ID=sa;pwd =sa;Asynchronous Processing=true"
Dim theConnection As SqlConnection = New SqlConnection(theConnectionString)
theConnection.Open()
Dim strSQL As String = "Select * From tbdata"
Dim myCommand As New SqlCommand(strSQL, theConnection)
' Execute the reader on a second thread.
Dim itfAsynch As IAsyncResult
itfAsynch = myCommand.BeginExecuteReader(CommandBehavior.CloseConnection)
' Do something while other thread works.
While Not itfAsynch.IsCompleted
' Console.WriteLine("Working on main thread...")
'Thread.Sleep(1000)
End While
Console.WriteLine()
' All done! Get reader and loop over results.
Dim myDataReader As SqlDataReader = myCommand.EndExecuteReader(itfAsynch)
While myDataReader.Read()
Console.WriteLine("-> 序号: {0}, 临时号: {1}, 车船号: {2}.", _
myDataReader("Id").ToString().Trim(), _
myDataReader("序号").ToString().Trim(), _
myDataReader("车船号").ToString().Trim())
End While
myDataReader.Close()
gsum += 1
Console.WriteLine("序号:" & gsum.ToString)
Console.ReadLine()
End Sub
End Class