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. Postgresql日志配置

    将PostgreSQL数据库安装后,需要进行一些关于数据库日志的配置,将postgresql.conf文件中,关于日志的配置选项详解,记录如下: 1.logging_collector = on/of ...

  2. 线程中的join方法,与synchronized和wait()和notify()的关系

    什么时候要用join()方法? 1,join方法是Thread类中的方法,主线程执行完start()方法,线程就进入就绪状态,虚拟机最终会执行run方法进入运行状态.此时.主线程跳出start方法往下 ...

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

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

  4. 业余时间折腾了个微信小程序版本的街机游戏模拟器(吾爱街机),8090后的童年回忆,欢迎大家体验

    好多年没来博客园了,有段时间想玩街机游戏,发现都需要下载安装,现在小程序这么流行,是不是可以集成到小程序里(无需下载,在线玩),出于这想法,就业余时间折腾了下,分享给大家,偶尔可以回味畅玩下. 中间遇 ...

  5. centos7部署etcd集群

    实验环境:centos7.4纯净版 192.168.216.130 node1 master 192.168.216.132 node2 slave 192.168.216.134 node3 sla ...

  6. 题解 LA2889

    题目大意 多组数据,每组数据给出一个正整数 \(n\),输出第 \(n\) 大的回文数(即 \(1,2,3,\cdots\)). 分析 不难发现,\(n\) 位的回文数有 \(9*10^{\lfloo ...

  7. 2019.12.10 break 标记

    class Demo01{ public static void main(String[] args) { int i=0; a:for(i=0;i<3;i++){ for(int j=0;j ...

  8. [USACO09DEC] Dizzy Cows 拓扑序

    [USACO09DEC] Dizzy Cows 拓扑序 先对有向边跑拓扑排序,记录下每个点拓扑序,为了使最后的图不存在环,加入的\(p2\)条无向边\(u,v\)必须满足\(u\)拓扑序小于\(v\) ...

  9. Comet OJ 2019 夏季欢乐赛题解

    Comet OJ 2019 夏季欢乐赛题解 我是来骗访问量的 A 完全k叉树 \(n\)个点的完全k叉树的直径. 直接做 B 距离产生美 直接做 C 烤面包片 \(n!!!\mod p\) 显然\(n ...

  10. (15)Go错误处理

    1.erro(一般错误) package main import ( "errors" "fmt" ) func div(a, b int) (res int) ...