
正文
vb.net的线程 vb6 线程
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB.net多线程编程问题
你可以在timer前用if判断网络状态,如断开,可用 threading.Thread.Sleep(10000) ‘当前线程挂起10秒 ’可以开一个新线程去读取脱机数据。如连接,则继续执行。
简单实现的话可以试试BackgroundWorker控件来做比较简单。
.net 为了安全,默认不允许跨线程访问操作控件。只能谁创建了控件,谁操作。这个textbox只能从主线程访问。解决方案一般有两个 使用委托机制。
多线程一般是不推荐用的,因为线程之间如果有共享资源的话会引起竞争,需要加锁处理;而且线程间没有时序关系,所以你在调试中可能会出现异步处理结束顺序与开始处理顺序不一致的情况(我在调试中已经发现该问题)。
多线程就是这样的。界面线程是主线程,你这个Form_Load就是运行在主线程上的线程,而Thread1,Thread2是由主线程启动的。这个启动不是线性的。主线程只是通知系统,请启动一个线程运行某某函数。
可能原因:timer不是由当前线程创建的。解决方案:在线程中实例化一个timer,然后触发,可以去试一下;或者通过委托,调用timer。先不用线程试一下吧。
相关问答
Q1: 你好,是只有VB.NET能多线程,还是所有VB都能实现多线程?
1、纯VB中只能模拟多线程,不能真正多线程(即使用多个ActiveX,在每个里面运行一个线程,以此模拟多线程环境)。 如果要多线程,多是使用C++等支持多线程的语言编写好组件,给VB调用。
2、方法 1 : CreateThread 不用多说,万变不离其宗,这是 Win32 内创建线程的唯一系统方法,以下介绍的多线程创建方式虽然不直接接触这个 Win32 APi,但系统也是通过他创建的。
3、但是用vb做多线程的关键不在于创建,而是在于线程的不稳定,其不稳定是由于vb6自身的控件(如按钮、文本框等)不是线程安全的,怎么用你程序就可能怎么挂,所以这些个玩样儿在多线程中统统不能用。
Q2: VB.net可以多线程控制同一个窗体及其控件吗
1、简单回答:当前来说,编程与运行环境合适的情况下,VB.net与VB都有实现多线程的可能。VB、VB.net的最基本的概念,是调用系统的接口进行编程,只要系统提供“多线程”的功能调用,它们就能实现多线程。
2、方法 1 : CreateThread 不用多说,万变不离其宗,这是 Win32 内创建线程的唯一系统方法,以下介绍的多线程创建方式虽然不直接接触这个 Win32 APi,但系统也是通过他创建的。
3、目测是 SetParent() 的锅,你把这句注释了,用 ShowDialog() 应该就能符合你的要求了。
4、简单实现的话可以试试BackgroundWorker控件来做比较简单。
5、建议你使用BackGroundWorker控件。将代码写入控件的事件中,使用它的Start方法就可以开始工作了。是与主程序同时进行的。
6、针对你提出的这个问题,采用了多线程处理,利用的是BackgroundWorker也就是异步处理控件进行了处理。代码已经经过调试通过。欢迎交流,如有问题,留下QQ或其他联系方式。代码如下,并附程序截图。
Q3: 在vb.net中,多线程如何使用
首先,你把你那些要运行很久的过程。尽量放在一个过程中。因为线程只能是过程,不能使函数,没有返回值的。
主界面就不会卡死了,只要在循环结束后将结果传回主线程调用就可以了,再复杂点要涉及到委托,控制了 按你的要求其实你的代码用不到多线程,只要把sleep放到两段代码中间就可以了。
1)当你将方法排入线程池队列后,此方法在有线程池线程变得可用时执行。
ListBox操作需要用Invoke。另外多线程方式并不是并行处理。建议采用.net framework 4 带的并行处理循环操作,若不是0版本的framework,可以使用Aforge的并行库比较方便。
Q4: 同Java一样简单!VB.NET多线程开发实例
1、多线程一般是不推荐用的,因为线程之间如果有共享资源的话会引起竞争,需要加锁处理;而且线程间没有时序关系,所以你在调试中可能会出现异步处理结束顺序与开始处理顺序不一致的情况(我在调试中已经发现该问题)。
2、ListBox操作需要用Invoke。另外多线程方式并不是并行处理。建议采用.net framework 4 带的并行处理循环操作,若不是0版本的framework,可以使用Aforge的并行库比较方便。
3、VB .NET 是较早出现的一种开发语言,因为它控件的操作简单而为很多人使用,但是因为它功能的局限性和开发大型软件效率比较低,所以现在用的人越来越少。
4、多线程 多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
5、C#被大力宣传为微软对付JAVA的王牌,受到媒体极力关注。然而VB.NET(有时被称为VB7)影响面不广,这导致VB社区之外很少人关注它。
vb.net的线程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb6 线程、vb.net的线程的信息别忘了在本站进行查找喔。







