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, 500)
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 myc As New Savedata
Private Sub Work() '此函数为线程要执行的方法
myc.Save() '第一种方法
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 Savedata
Public Sub Save()
Dim theConnectionString As String
theConnectionString = "Data Source=WANGLI;Initial Catalog=PlcData;Persist Security Info=True;User ID=sa;pwd =sa;Asynchronous Processing=true"
Dim theConnection As SqlConnection = New SqlConnection(theConnectionString)
Dim theCommand As SqlClient.SqlCommand
theCommand = New SqlCommand("select * from tbdata", theConnection)
theConnection.Open()
Console.WriteLine("connection open and asynchronour processing starting.")
theCommand.BeginExecuteReader(New AsyncCallback(AddressOf DataReady), theCommand)
End Sub
Private Sub DataReady(ByVal asyncResult As IAsyncResult)
Dim theCommand As SqlCommand = asyncResult.AsyncState
Dim Dr As SqlDataReader
Dr = theCommand.EndExecuteReader(asyncResult)
While Dr.Read
Console.WriteLine(Dr.GetString(2))
End While
theCommand.Connection.Close()
Console.WriteLine("数据处理结束....")
End Sub
end Class
异步访问数据库(经典之一)
最新推荐文章于 2021-08-05 16:56:15 发布