vb.net - 在我的 VB.NET 表单应用程序中,我想在不使用 Me.Refresh() 方法的情况下连续更新表单上的标签文本,我该怎么做?
问题描述
这是连续返回一个随机整数并引发一个事件(每次)的函数,该事件在称为 Eventing 的 windows 窗体的代码隐藏中调用一个处理程序
Public Function MyNumber() As Int64
While (True)
Dim myInt As Int64
Randomize()
myInt = CInt(Int((100 * Rnd()) + 1))
RaiseEvent ValueChanged(myInt)
Return myInt
End While
End Function
在表单的 CodeBehind 中,我使用此代码将标签更新为从函数返回的值以更新标签文本
Public Sub Eventing(e As Int64) Handles CoolObject.ValueChanged
ActiveForm.Refresh()
Label1.Text = e.ToString
End Sub
问题是:代码运行良好,Label1 不断更新,但整个表单冻结 表单上的其他按钮都没有响应,我必须在 Visual Studio 上强行停止它
解决方案
感谢您的回复,我使用 BackgroundWorker 线程解决了这个问题
推荐阅读
- javascript - 更改每个文件或每个 describe() 块的 mocha 选项
- node.js - NodeJS + Google Login + Firebase Functions 导致解码 Firebase 会话 cookie 失败
- api - 未找到 PUT 方法 appscript api 密钥
- json - Json 多参数如何解析?
- javascript - 将 Array.from 作为回调传递给 Array.flatMap 时,为什么会出现 TypeError: 0 is not a function?
- google-play - 从变量设置 DevOps 任务下拉选项
- javascript - 组件列表:函数没有收到正确的参数
- reactjs - 测试 Window.Location.Pathname 测试库 + jest
- spring - 使用 Spring Authorization Server 配置 Spring Gateway
- sql - 如果包含某些字符串 postgres 则拆分文本