成都网站建设设计

将想法与焦点和您一起共享

包含VB.net定时器卡死的词条

vb.net 多线程卡死界面,新手求前辈们帮助,感谢

“卡死”是一个非常主观的描述,如果你要让主线程杀掉卡死的线程,那么你必须给“卡死”做出准确的定义。

成都创新互联公司2013年开创至今,是专业互联网技术服务公司,拥有项目成都网站建设、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元台州做网站,已为上家服务,为台州各地企业和个人服务,联系电话:18980820575

什么是卡死?30秒没有响应就是卡死?那么“没有响应”的定义又是什么?

你给出这些条件以后,杀掉一个线程就不难。Abort方法,Dispose方法,都可以。

VB 处理数据时防止卡死

这种情况应该尽量避免,比如将大工作量的内容拆分进行。

但肯定无法完全避免,那么给用户显示一个进度条就非常必要了。

如果可能,还应该配上当前进度的一些说明。比如类似: 已完成 53/70 等。

插入 DoEvents 也是可以考虑的,但必须做好必要的准备,否则会出问题。

比如说:用户在处理过程进行到一半的时候,又按了一次按钮,怎么办?

在处理过程中,你的定时器Timer触发了,导致数据变化,怎么办?

甚至,用户直接在过程中点了关闭按钮,怎么办?立刻退还是存完再退?等等。

关于VB.net Timer控件与多线程问题

Timer 是在 主线程里执行的,Thread 是在自己的线程中执行的,多核心的CPU使用线程能提高处理能力。回到你的问题,主线程如果卡死,timer就会失去响应,很正常的。请使用System.Timers.Timer类吧。请参考一下:

vb.net 程序运行久了以后崩溃

1、可能进入了死循环,仔细检查代码有无这种情况。

2、无用的数据一直在累积而没有及时销毁,导致内存占用越来越大,最终崩溃。要注意对象随用随清,及时 Dispose 掉或调用 GC.Collect。


文章标题:包含VB.net定时器卡死的词条
分享地址:http://chengdu.cdxwcx.cn/article/doeoshp.html