VB.NET多线程如何给全局变量赋值

west-wind 2014-11-18 01:58:19
代码如下,多线程给全局变量a复制,在线程中a的值确实是等于“abc”但是线程结束后,a的值就丢失了!


Public Class Class1

Public a As String '全局变量
Dim myThread As Threading.Thread ‘线程

Public Function SetText() As Boolean
a="abc"
End Function

'启动线程
Public Sub Thread_Start()
myThread = New Threading.Thread(AddressOf SetText)
myThread.Start()
End Sub

End Class
...全文
391 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
west-wind 2014-11-21
  • 打赏
  • 举报
回复
问题已解决,用Shared定义变量就可以了!
west-wind 2014-11-21
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
什么叫a的值丢失了 Public Sub Thread_Start() myThread = New Threading.Thread(AddressOf SetText) myThread.Start() myThread.Join() MsgBox a End Sub 有输出么?
就是说线程结束后得不到线程中赋给a的值
於黾 2014-11-18
  • 打赏
  • 举报
回复
你从哪里看到a的值丢失的 断点调试的时候? 断点调试,你必须在使用a的代码段里查看a的值,才能看到a的值 程序已经走出了使用a的代码段,你去看a的值,a的值不就变成未定义了吗
threenewbee 2014-11-18
  • 打赏
  • 举报
回复
什么叫a的值丢失了 Public Sub Thread_Start() myThread = New Threading.Thread(AddressOf SetText) myThread.Start() myThread.Join() MsgBox a End Sub 有输出么?

16,722

社区成员

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

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