网站建设资讯

NEWS

网站建设资讯

vb.net多线程例子,windows多线程编程实例

VB.net 如何设计多线程运行

Sub Main()

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的青羊网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

Dim thr As Thread

For Pi As Integer=0 To 4 //启用5线程

MulParams =Pi vbTab sFile vbTab dFile vbTab 1 vbTab DelN vbTab cr vbTab cg vbTab cb vbTab IndexI

GlobalParamas(pi)=MulParams .Split(vbTab)

thr=New Thread(AddressOf MyMulThreadCaller)

thr.Start() //启动多线程进程

Application.DoEvents

Next

End Sub

谁能分享一下vb.net多线程的简单例子,证明线程之间互不干扰,加上注释最好。

Imports System

Imports System.Threading

Public Class Form1

Dim TestThread1, TestThread2 As Thread

Public Sub TestMethod1()

Dim i As Integer

i = 0

While (i  1000)

Label1.Text = i

i += 1

End While

End Sub

Public Sub TestMethod2()

Dim i As Integer

i = 0

While (i  1000)

Label2.Text = i

i += 1

End While

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Control.CheckForIllegalCrossThreadCalls = False

TestThread1 = New Thread(New ThreadStart(AddressOf TestMethod1))

TestThread1.Start()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Control.CheckForIllegalCrossThreadCalls = False

TestThread2 = New Thread(New ThreadStart(AddressOf TestMethod2))

TestThread2.Start()

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Control.CheckForIllegalCrossThreadCalls = False

TestThread1 = New Thread(New ThreadStart(AddressOf TestMethod1))

TestThread2 = New Thread(New ThreadStart(AddressOf TestMethod2))

TestThread1.Start()

TestThread2.Start()

End Sub

End Class

VB.NET中的多线程和委托是什么关系? 能不能给我一个通俗易懂的范例,谢谢

委托,Delegate

就是让你处于这个线程里时,委托另一个线程去执行一些动作

我简单举一个写richtextbox的例子:

////////////////////////////////////////////

'创建一个名为 MySubDelegate 的委托。

Delegate Sub MySubDelegate(ByVal txt As String)

'写信息到富文本主窗口

Private Sub txtW(ByVal txt As String)

Dim msgd As New MySubDelegate(AddressOf Me.txtW1)

Dim arg(0) As Object

arg(0) = txt

Me.Invoke(msgd, arg)

End Sub

'委托指向

Private Sub txtW1(ByVal txt As String)

Me.RichTextBox1.AppendText(txt)

End Sub

/////////////////////

这样,你在多线程应用时,在其他线程里用txtW(str)来写richtextbox,就不会产生错误了。不然,直接垮线程写richtextbox,可能会出现和UI线程的冲突。

vb.net多线程如何返回参数,举个例子,谢谢

Public Class Form1

Public Class SquareClass '把多线程调用的函数封装到类中,通过类事件返回

Public Value As Double

Public Square As Double

Public Event ThreadComplete(ByVal Square As Double)

Public Sub CalcSquare()

Square = Value * Value

RaiseEvent ThreadComplete(Square)

End Sub

End Class

Dim WithEvents oSquare As SquareClass

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '多线程返回值测试,当线程运行完成激发事件

oSquare = New SquareClass()

Dim t As New Threading.Thread(AddressOf oSquare.CalcSquare)

oSquare.Value = 30

t.Start()

End Sub

Sub SquareEventHandler(ByVal Square As Double) Handles oSquare.ThreadComplete '响应事件函数

MsgBox("The square is "  Square)

End Sub

End Class


网站标题:vb.net多线程例子,windows多线程编程实例
分享路径:http://cdweb.net/article/hcssoc.html