vb.net多线程问题

miwuawen 2012-08-23 09:56:39

Imports System.Threading
Public Class Form1
Public Sub Method1()
Dim i As Integer
For i = 1 To 100
' Console.Writeline("这是类AClass方法method1的内容", i)
RichTextBox1.Text &= (("这是method1的内容:" & i) & vbCrLf)
Next
End Sub

Public Sub Method2()
Dim i As Integer
For i = 1 To 100
' Console.Writeline("这是类AClass方法method2的内容", i)
RichTextBox1.Text &= (("这是method2的内容:" & i) & vbCrLf)
Next
End Sub
Public Overloads Function invoke(ByVal method As [Delegate])
Return True
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim aclass As New AClass
Dim th1, th2 As Thread
th1 = New Thread(New ThreadStart(AddressOf Method1))
th1.Start()
th2 = New Thread(New ThreadStart(AddressOf Method2))
th2.Start()
Dim i As Integer
For i = 0 To 100
' RichTextBox1.Text = Console.WriteLine("Main方法里的内容", i)
RichTextBox1.Text = ((i) & vbCrLf)
Next
End Sub
End Class

RichTextBox1.Text &= (("这是method1的内容:" & i) & vbCrLf) 这里提示:线程间操作无效: 从不是创建控件“RichTextBox1”的线程访问它。
请问该怎么做呢?
...全文
125 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
miwuawen 2012-08-27
  • 打赏
  • 举报
回复
Imports System.Threading
Public Class Form1
'实例化委托
Public Sub Method1()
'线程暂停一段时间
Thread.Sleep(6000)
Me.Invoke(New output1(AddressOf ss))
End Sub

Sub ss()
Dim i As Integer
For i = 1 To 100
RichTextBox1.Text &= (("这是method1的内容:" & i) & vbCrLf)
Next
End Sub

Sub ss1()
Dim i As Integer
For i = 1 To 100
RichTextBox1.Text &= (("这是method2的内容:" & i) & vbCrLf)
Next
End Sub
'实例化委托
Public Sub Method2()
Me.Invoke(New output1(AddressOf ss1))
End Sub
'声明一个委托
Public Delegate Sub output1()

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim th1, th2 As Thread
th1 = New Thread(New ThreadStart(AddressOf Method1))
th1.Start()
th2 = New Thread(New ThreadStart(AddressOf Method2))
th2.Start()
Dim i As Integer
For i = 0 To 100
RichTextBox1.Text = (("Main方法里的内容:" & i) & vbCrLf)
Next
End Sub



做出来了 呵呵
大东哥哥的爹 2012-08-26
  • 打赏
  • 举报
回复
我的天呀。在子线程里修改主线程的值。。。
不行的。
shanda9727 2012-08-24
  • 打赏
  • 举报
回复
CheckForIllegalCrossThreadCalls = False
shanda9727 2012-08-24
  • 打赏
  • 举报
回复
在load事件中写上: CheckForIllegalCrossThreadCalls = False

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧