您的位置:首页 > 其它

采用多线程方式,解决由于查询等待造成winfrom假死问题

2016-07-01 11:50 531 查看
1.这里是触发一个比较耗时的操作,比如一次大数据量的查询;

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


2.开始处理数据

public delegate void InitItemInvoke(string str);

public void DoWord()
{
  try
  {
    InitItemInvoke mi = new InitItemInvoke(InitQuotationItems);
    string _strPostData = "{\"conditions\": [" + m_strFilter + "],\"paging\": {\"page\": 1,\"size\": 30}}";
    string result = BIMTService.CallPostService(PublicVar.BaseUrl + "/documents/search", _strPostData);//比较耗时的操作
    BeginInvoke(mi, new object[] { result });
  }
  catch (Exception ex)
  {
    LogHelper.WriteLog(typeof(ucLiteratureRecommend), "DoWord" + ex.Message);
  }
}


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

public void InitQuotationItems(string str)
{
  //操作winform界面; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: