zoukankan      html  css  js  c++  java
  • c#界面卡死处理方法

    方法一:

    设置属性:

    Control.CheckForIllegalCrossThreadCalls = false;

    开启一个新线程

    Thread th = new Thread(() => Search(detailID.Trim()));
    th.IsBackground = true;
     th.Start();
     public void Search(string detailID)
    {
    dataGridView1.DataSource =BLLBillConsume.BllGetClearMarketLog_detail(detailID);
    dataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight;//文本向右对齐
     }

    上面的方法不推荐,推荐以下方法:

    拖一个组件backgroundWorker

    设置属性:

    backgroundWorker1.WorkerReportsProgress = true;
    backgroundWorker1.WorkerSupportsCancellation = true;

    执行用时较长的操作,

    backgroundWorker1.CancellationPending是用来判断是否允许用户取消
     private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                dtMain = BLLBillConsume.BllGetClearMarketLog_detail(detailID);
                if (!backgroundWorker1.CancellationPending)
                {//退出
                    backgroundWorker1.CancelAsync();
                }
            }
    Thread.Sleep(100000);只是为了模拟界面卡死

    然后就显示查询到的数据
     private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
            {
                dataGridView1.DataSource = dtMain;
                dataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight;//文本向右对齐
                //Search(detailID.Trim());
            }

    这个是开启线程

      backgroundWorker1.RunWorkerAsync();
     
  • 相关阅读:
    模式识别 之 BP算法
    仪器开发 之 DICOM 三维重建 HPP
    模式识别 之 BP算法 (二)
    病理分析 之 细胞分析
    脉搏血氧仪 之 算法原理
    模式识别 之 初学
    机器学习 之 模糊神经(失败总结)
    冲刺第二天
    冲刺第三天
    团队项目计划
  • 原文地址:https://www.cnblogs.com/codeDevotee/p/7467548.html
Copyright © 2011-2022 走看看