当前位置:编程学习 > C#/ASP.NET >>

VB.NET中DoEvents可以防界面假死,但是如何解除界面按钮多次点击。

问题描述:
    窗体上有检索条件文本框,检索按钮和数据显示列表,数据量很大。
    有如下操作:
    (1)不追加DoEvents的情况,按下按钮,画面进入数据检索(耗时长),此时快速点击窗体,
        窗体进入不响应状态,窗体进入假死状态(弊端。)
    (2)追加DoEvents的情况,按下按钮,画面进入数据检索(耗时长),此时快速点击窗体,
        窗体依然可以响应,窗体不会进入假死状态;
        但是带来新的问题:检索按钮可以重复点击,会带来不可预知的BUG,请问达人该怎么解决,有什么好办法? --------------------编程问答-------------------- enable=F --------------------编程问答--------------------
引用 1 楼 xiaobingking 的回复:
enable=F


正解! --------------------编程问答-------------------- 用多线程啊! --------------------编程问答-------------------- 第一次点击时,按钮的enable=false,直到数据处理完,enable=true --------------------编程问答-------------------- 自从用了多线程,这腰不酸了,腿不痛了,上楼也有劲了。 --------------------编程问答-------------------- 处理大数据量为什么不用BackgroundWorker呢?直观好用,这种最好用多线程。
或者楼上的将Button Enable False即可 --------------------编程问答-------------------- 如果点击检索按钮:
1. 假如与上一次检索的内容相同,那么自然是放弃此次检索。
2. 加入不同,那么自然是丢弃正在进行的检索,开始新的检索。

实际上你允许并形操作,这种东西就是正常的业务流程,不要从比较低级的技术角度去设计程序。 --------------------编程问答-------------------- 是什么BUG,弹出的错误是什么。我只说下我的经验,一般可以重复点击出现错误是因为资源的问题 --------------------编程问答-------------------- 查询时间长,可以考虑放在新的线程里,否则可以在点击后把按钮enable设为false,也可以弄个标志变量,发现处于查询状态就不动作
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,