public static class BackgroundWorkerHelper
{
public static void Run(DoWorkEventHandler doWork,
RunWorkerCompletedEventHandler completed = null,
ProgressChangedEventHandler progressChanged = null)
{
using (var backgroundWorker = new BackgroundWorker())
{
backgroundWorker.DoWork += doWork;
if (completed != null)
backgroundWorker.RunWorkerCompleted += completed;
if (progressChanged != null)
{
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.ProgressChanged += progressChanged;
}
backgroundWorker.RunWorkerAsync();
}
}
} public static class BackgroundWorkerHelperOrgainal
{
public static BackgroundWorker backgroundWorker { get; set; }
public static void Run(DoWorkEventHandler doWork,
RunWorkerCompletedEventHandler completed = null,
ProgressChangedEventHandler progressChanged = null)
{
backgroundWorker = new BackgroundWorker();
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.WorkerSupportsCancellation = true;
backgroundWorker.DoWork += doWork;
if (completed != null)
backgroundWorker.RunWorkerCompleted += completed;
if (progressChanged != null)
{
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.ProgressChanged += progressChanged;
}
if (!backgroundWorker.IsBusy)
backgroundWorker.RunWorkerAsync(); }
}
 private void doTime()
{
try
{
int mm = int.Parse(this.textBox1.Text.Trim()); BackgroundWorkerHelper.Run((s, e) =>
{
while ( == )
{
try
{ }
catch (Exception ex)
{ }
} },
(s, e) =>
{ }); }
catch (Exception ex)
{
;
}
finally
{ }
}
 BackgroundWorkerHelper.Run(
(s, e) =>
{
ReturnData rd = new ReturnData();//接收的
try
{
try
{
rd = PlugRemote.GetInstance().GetAllCusmail(sd);
}
catch (Exception ex)
{
rd.state = false;
rd.Info = ex.Message;
}
e.Result = rd;
}
catch (Exception ex)
{
rd.state = false;
rd.Info = ex.Message;
e.Result = rd;
}
},
(s, e) =>
{
ReturnData rd = (ReturnData)e.Result;
if (!rd.state)
{
this.ShowMessage(rd.Info, );
return;
}
pagerControl1.DrawControl(rd.Count);//更新分页控件显示。
ReturnData<List<tms_cusmail>> rdt = new ReturnData<List<tms_cusmail>>(rd);
this.gridControl1.DataSource = rdt.t; });
BackgroundWorkerHelperOrgainal.Run((s, e) =>
{
BackgroundWorker bg = (BackgroundWorker)s;
foreach (var item in listvgs_real)
{
bg.ReportProgress(, item);
Thread.Sleep();
} },
(s, e) =>
{
isok = true;
},
(s, e) =>
{
if (e.ProgressPercentage == )
{
if (e.UserState != null)
{
var item = (vgs_real)e.UserState;
PointLatLng pl = new PointLatLng(item.OffsetLat, item.OffsetLng);
GMapMarkerDirection markerlast = new GMapMarkerDirection(new PointLatLng(item.OffsetLat, item.OffsetLng), Properties.Resources.carsmall, (float)item.Angle, , );
markerlast.IsHitTestVisible = true;
markerlast.ToolTipMode = MarkerTooltipMode.Always;
markerlast.ToolTipText = string.Format("车速:{0}\r\n地点{1}", item.VDRspeed, item.Address);
routesOverlay.Markers.Clear();
routesOverlay.Markers.Add(markerlast); gmap.Position = pl; } }
});

BackgroundWorkerHelper的更多相关文章

随机推荐

  1. gRPC应用C++

    1.  gRPC简述 RPC,远程方法调用,就是像调用本地方法一样调用远程方法. gRPC是Google实现的一种RPC框架,基于HTTP/2标准设计,带来诸如双向流.流控.头部压缩.单 TCP 连接 ...

  2. hash表的理解

    哈希表 先从数组说起 任何一个程序员,基本上对数组都不会陌生,这个最常用的数据结构,说到它的优点,最明显的就是两点: 简单易用,数组的简易操作甚至让大多数程序员依赖上了它,在资源富足的情况下,我们甚至 ...

  3. Python语言防坑小技巧

    Python语言防坑小技巧 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.赋值即定义  1>.运行以下代码会出现报错 #!/usr/bin/env python #_*_ ...

  4. window安装gcc、g++、make等编译环境

    1. MinGW官网下载:http://www.mingw.org        点击右上角Downloads 点击下载 mingw-get-setup.exe 2. 百度网盘(2019年4月从官网下 ...

  5. 使用Arduino连接HC-SR04超声波距离传感器的方法

    距离传感器是机器人项目最有用的传感器之一. HC-SR04是一种便宜的超声波距离传感器,可以帮助您的机器人在房间周围导航.通过一些努力和一个额外的组件,它也可以用作测量设备.在这篇文章中,您将学习到通 ...

  6. scrapy框架爬取开源中国项目大厅所有的发布项目。

    本文爬取的字段,项目名称,发布时间,项目周期,应用领域,最低报价,最高报价,技术类型 1,items中定义爬取字段. import scrapy class KaiyuanzhongguoItem(s ...

  7. 自定义控件LengthValidator

    1.创建自定义验证控件:新建LengthValidator类并继承BaseValidator using System; using System.Collections.Generic; using ...

  8. POJ - 3728:The merchant (Tarjan 带权并查集)

    题意:给定一个N个节点的树,1<=N<=50000 每个节点都有一个权值,代表商品在这个节点的价格.商人从某个节点a移动到节点b,且只能购买并出售一次商品,问最多可以产生多大的利润. 思路 ...

  9. C# 基础回顾: volatile 关键字

    有些人可能从来没看到过这个关键字,这也难怪,因为这个关键字并不常用.那这个关键字到底有什么用呢? 我在网上搜索这个关键字的时候,发现很多朋友都有一个错误的认识 ------ 认为这个关键字可以防止并发 ...

  10. 项目集成Spring Security

    前言 之前写的 涂涂影院管理系统 这个 demo 是基于 shiro 来鉴权的,项目前后端分离后,显然集成 Spring Security 更加方便一些,毕竟,都用 Spring 了,权限管理当然 S ...