代码之家  ›  专栏  ›  技术社区  ›  Taptronic

vb.net(或c)2008多线程导入

  •  2
  • Taptronic  · 技术社区  · 16 年前

    我希望构建一个多线程的文本导入工具(通常是csv到SQL Server 2005),并希望在vb.net中实现这一点,但我并不反对c。我有对2008年的审判,只是不知道从哪里开始。有人能指出我在哪里可以看和玩的来源 非常 针对vs 2008的简单多线程应用程序?

    谢谢!

    3 回复  |  直到 16 年前
        1
  •  2
  •   Tom A    16 年前

    BackgroundWorker

    MSDN Threads and Threading

    MSDN BackgroundWorker Class

    Imports System.ComponentModel
    
    Partial Public Class Page
        Inherits UserControl
        Private bw As BackgroundWorker = New BackgroundWorker
    
        Public Sub New()
            InitializeComponent()
    
            bw.WorkerReportsProgress = True
            bw.WorkerSupportsCancellation = True
            AddHandler bw.DoWork, AddressOf bw_DoWork
            AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged
            AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
    
        End Sub
        Private Sub buttonStart_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            If Not bw.IsBusy = True Then
                bw.RunWorkerAsync()
            End If
        End Sub
        Private Sub buttonCancel_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            If bw.WorkerSupportsCancellation = True Then
                bw.CancelAsync()
            End If
        End Sub
        Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
            Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
    
            For i = 1 To 10
                If bw.CancellationPending = True Then
                    e.Cancel = True
                    Exit For
                Else
                    ' Perform a time consuming operation and report progress.
                    System.Threading.Thread.Sleep(500)
                    bw.ReportProgress(i * 10)
                End If
            Next
        End Sub
        Private Sub bw_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
            If e.Cancelled = True Then
                Me.tbProgress.Text = "Canceled!"
            ElseIf e.Error IsNot Nothing Then
                Me.tbProgress.Text = "Error: " & e.Error.Message
            Else
                Me.tbProgress.Text = "Done!"
            End If
        End Sub
        Private Sub bw_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs)
            Me.tbProgress.Text = e.ProgressPercentage.ToString() & "%"
        End Sub
    End Class
    
        2
  •  4
  •   nathaniel    16 年前

    http://www.devx.com/DevX/10MinuteSolution/20365

    Dim t As Thread
    t = New Thread(AddressOf Me.BackgroundProcess)
    t.Start()
    
    Private Sub BackgroundProcess()
       Dim i As Integer = 1
       Do While True
            ListBox1.Items.Add("Iterations: " + i)
            i += 1
            Thread.CurrentThread.Sleep(2000)
       Loop
    End Sub
    
        3
  •  1
  •   Simon    15 年前