Invoke封送如何用?能否给个例子……

QQRN 2004-07-12 09:32:05
在多线程处理中遇到问题,提示用Invoke封送,但是一直不能成功
我是在一个Class线程里面给TreeView添加节点导致该错误
Public Class HotTopClass
Public Sub HotTop()
Dim msd As topDelegate
msd = AddressOf GBClass.Top.Nodes(0).Nodes.Add
msd.Invoke("Test")
End Sub
End Class

Public Delegate Function topDelegate(ByVal Text As String) As TreeNode
执行时有时候成功,有时候失败
相关提示如下:
未处理的“System.InvalidOperationException”类型的异常出现在 system.windows.forms.dll 中

其他信息:在该控件上执行的操作正被错误的线程调用。必须使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajqc 2004-07-13
  • 打赏
  • 举报
回复
Invoke()不会用后台线程来调用的
一定要BeginInvoke()
Brunhild 2004-07-13
  • 打赏
  • 举报
回复
应该用控件的Invoke方法:
GBClass.Top.Invoke(msd, new object() {"Test"})


QQRN 2004-07-13
  • 打赏
  • 举报
回复
Brunhild给的是BeginInvoke的方法d,因为Invoke只有一个参数,嘿嘿,他写错了
QQRN 2004-07-13
  • 打赏
  • 举报
回复
谢谢各位,已经搞掂,发分……
目录 介 绍 ……………………………………………………………………………2 为什么选用汇编语言 …………………………………………………………2 为什么选择Windows系统……………………………………………………2 Ⅰ开始学习之旅 ……………………………………………………………….…3 编译器 ………………………………………………………………………3 编辑器 …………………………………………………………………………3 Ⅱ第一个程序 ……………………………………………………………………4 控制台程序 ……………………………………………………………………4 窗体程序 ………………………………………………………………………6 ADDR 与 OFFSET ………………………………………………………6 Ⅲ汇编基础…………………………………………………………………………7 cpu寄存器 ……………………………………………………………………7 指令集基础 ……………………………………………………………………8 Push 和 Pop…………………………………………………………………8 Invoke ……………………………………………………………………9 程序例子 ………………………………………………………………………9 IV. 窗体程序基础…………………………………………………………………10 预备知识………………………………………………………………………10 宏……………………………………………………………………………10 过程…………………………………………………………………………10 变量…………………………………………………………………………10 一个简单的窗体程序…………………………………………………………11 IV. 深入汇编和系统………………………………………………………………13 字符串操作……………………………………………………………………13 文件管理………………………………………………………………………13 存储…………………………………………………………………………14 程序例子……………………………………………………………………14 控制……………………………………………………………………………15 附加资源 …………………………………………………………………………16 互联网………………………………………………………………………16 书籍…………………………………………………………………………16 MASM32……………………………………………………………………16 MSDN………………………………………………………………………16 新闻组………………………………………………………………………16 IRC …………………………………………………………………………16 介 绍 “This is for all you folks out there,who want to learn the magic art of Assembly programming” -MAD 介 绍 我最近才开始学习windows系统汇编语言编程,这个教程是我在学习汇编语言的过程中写下来的。我阅读大量的在线教程、书本,以及通过新闻组以及IRC通讯工具请问他人,本人就是通过这些方式学习汇编语言的。互联网上有很多的汇编编程的教程,但这些教程只是侧重于X86汇编。因为这些教材都假定读者已经掌握了高级编程语言以及基本的计算机系统知识。 为什么选用汇编语言? 汇编语言具有若干的特色,使得在某此情况下,汇编语言是一种很好的选择。 1 快速 汇编语言程序运行的速度比高级语言程序要快。通常,要求运行效率高的子程序是用汇编语言编写的。 2 强大 运用汇编语言,你能得到不受限制的权力。相对的,高级语言则有种种限制,在实现某些特定的要求时变得困难。 3 体积小 汇编语言程序通常比其他语言程序要小得多。这种特性在空间有限的情况下是非常有用的。 为什么选择Windows系统? 在任何操作系统和处理器模式下,都可以编写相应的汇编语言程序的。但是当前,多数人在使用基于x86处理器的Windows系统,所以从编写运行于此种环境下的程序开始我们的教程。一旦一种汇编语言的基础知识掌握了,我们就会很容易写出在其他运行环境下汇编程序。

16,554

社区成员

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

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