C#/VB.NET 两个类跨线程操作
答案:1 悬赏:80 手机版
解决时间 2021-02-05 03:36
- 提问者网友:ミ烙印ゝ
- 2021-02-04 09:58
C#/VB.NET 两个类跨线程操作
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-02-04 11:31
代码?
myform.textbox1.text=hi?
应该是提示未将对象设置到对象的引用,不能在窗体句柄创建前使用控件。如果是这样,把myform传给myclass的变量,而不是【直接引用】,应该可以解决追问看我的补充,你说的这两样都没提示,什么都没追答Public Class Form1
Dim objth As New Threading.Thread(AddressOf th)
Sub Log()
Dim 定义委托 As [Delegate]
定义委托 = Sub()
TextBox1.Text = 1111
End Sub
Invoke(定义委托)
'不知道你的窗体是怎样的,不用me不报错吗?
'log过程必须要委托,我这里没有委托log。
End Sub
Sub th()
Dim objMyClass As New myClass1(Me)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
objth.Start()
End Sub
End Class
Class myClass1
Sub New(f As Form1)
f.Log()
'把窗体传到这里来,不能直接使用。
End Sub
End Class追问谢谢你,我又有一个问题了,怎么传递值呢?
比如Log(“值”),然后TextBox1.Text ="值"
帮忙答完吧,我采纳你追答Sub Log(byref value as string)
Dim 定义委托 As [Delegate]
定义委托 = Sub(byref value as string)
TextBox1.Text = value
End Sub
Invoke(定义委托)
'不知道你的窗体是怎样的,不用me不报错吗?
'log过程必须要委托,我这里没有委托log。
End Sub
myform.textbox1.text=hi?
应该是提示未将对象设置到对象的引用,不能在窗体句柄创建前使用控件。如果是这样,把myform传给myclass的变量,而不是【直接引用】,应该可以解决追问看我的补充,你说的这两样都没提示,什么都没追答Public Class Form1
Dim objth As New Threading.Thread(AddressOf th)
Sub Log()
Dim 定义委托 As [Delegate]
定义委托 = Sub()
TextBox1.Text = 1111
End Sub
Invoke(定义委托)
'不知道你的窗体是怎样的,不用me不报错吗?
'log过程必须要委托,我这里没有委托log。
End Sub
Sub th()
Dim objMyClass As New myClass1(Me)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
objth.Start()
End Sub
End Class
Class myClass1
Sub New(f As Form1)
f.Log()
'把窗体传到这里来,不能直接使用。
End Sub
End Class追问谢谢你,我又有一个问题了,怎么传递值呢?
比如Log(“值”),然后TextBox1.Text ="值"
帮忙答完吧,我采纳你追答Sub Log(byref value as string)
Dim 定义委托 As [Delegate]
定义委托 = Sub(byref value as string)
TextBox1.Text = value
End Sub
Invoke(定义委托)
'不知道你的窗体是怎样的,不用me不报错吗?
'log过程必须要委托,我这里没有委托log。
End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯