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. 【转】SetWindowText 的用法

    SetWindowTextW表示设置的字符串是WCHAR (双字节字符 )SetWindowTextA表示设置的字符串是CHAR (单字节字符 )SetWindowText表示设置的字符串是自动匹配当 ...

  2. CentOS环境安装python3,pip

    安装python3(编译安装) 1. 下载python安装包到指定目录 cd /usr/local/src 这里的目录如果不存在可以自己建,当然也可以自己放在自己想放的位置,只要等会儿安装的时候能找到 ...

  3. app开发-1

    一.了解HBuilder HBuilder内封装了大量的书籍,极大方便了使用 官方文档: http://dev.dcloud.net.cn/mui/ui/ 关于布局: mhead  表头.mbody ...

  4. jpa之No property buyerOpenId found for type OrderMaster! Did you mean 'buyerOpenid'?

    java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.conte ...

  5. 《BUG创造队》第九次团队作业:Beta冲刺与验收准备

    项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目验收 团队名称 BUG创造队 作业学习目标 (1)掌握软件黑盒测试技术:(2)学 ...

  6. PHP程序员最容易犯的Mysql错误

    对于大多数web应用来说,数据库都是一个十分基础性的部分.如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子. 对于很多新手们来说,使用PHP可以在短短几个小时之内轻松 ...

  7. A Class of Blind Source Extraction Method Using Second-Order Statistics

    基于二阶统计量的盲源提取方法[1]. 文中提出了一系列基于二阶统计量的算法,包括离线BSE和在线BSE算法,可以提取平稳信号和非平稳信号.这些算法中,通过挖掘信号特征,提出了新的打分函数,以及一个无参 ...

  8. React-Redux常见API

    React-Redux是在Redux的基础上,将其大量重复的代码进行了封装. 1. Provider 利用context对象给所有子组件提供store.不再需要在每个组件都引用store. impor ...

  9. Redis存储Set

    与List不同Set不能存储相同元素,且数据没有顺序. 存储结构: 1.存储与查看数据: 2.删除指定的一个元素: 3.判断是否存在某一个元素(存在返回1,不存在返回0): 4.判断两个set中的特有 ...

  10. 洛谷 P3183 [HAOI2016]食物链 题解

    P3183 [HAOI2016]食物链 题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形 ...