zoukankan      html  css  js  c++  java
  • 采用多线程方式,解决由于查询等待造成winfrom假死问题

    1.这里是触发一个比较耗时的操作,比如一次大数据量的查询;

    1 Thread thread = new Thread(new ThreadStart(DoWord));
    2 thread.Start();

    2.开始处理数据

     1  public delegate void InitItemInvoke(string str);
     2 
     3  public void DoWord()
     4  {
     5    try
     6    {
     7      InitItemInvoke mi = new InitItemInvoke(InitQuotationItems);
     8      string _strPostData = "{"conditions": [" + m_strFilter + "],"paging": {"page": 1,"size": 30}}";
     9      string result = BIMTService.CallPostService(PublicVar.BaseUrl + "/documents/search", _strPostData);//比较耗时的操作
    10      BeginInvoke(mi, new object[] { result });
    11    }
    12    catch (Exception ex)
    13    {
    14      LogHelper.WriteLog(typeof(ucLiteratureRecommend), "DoWord" + ex.Message);
    15    }
    16  }

    3.数据返回,对UI界面进行更新

    1 public void InitQuotationItems(string str)
    2 {
    3    //操作winform界面;5 }
  • 相关阅读:
    基于centos的freeradius高可用lvs(UDP)
    sql server 2012的AlwaysOn高可用
    python基础题型一
    用户访一个APP或者网页流程示意图
    DNS解析流程
    crontab的定时任务实例
    Xcode设置
    Nvidia Nsight + .NET
    C++ Pointer-to-Member Selector
    C++11
  • 原文地址:https://www.cnblogs.com/wuhailong/p/5632568.html
Copyright © 2011-2022 走看看