BackgroundWorkerHelper
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的更多相关文章
随机推荐
- NT Kernel & System (ntoskrnl)占用80端口
释放80端口 netstat -ano|findstr "80" 查询占用的进程 , PID =4 发现是system进程 无法直接kill. 1. 关闭iis的默认网站的80端口 ...
- freebsd xfce桌面安装scim输入法,安装成功。
前言: 1.没有用handbook推荐的登陆组本地化方法,用的方法2:shell启动文件本地化方法(因为我不知道方法1里一些环境变量该大写还是小写,不想试了). 2.没有用登陆管理器,用xdm登录管理 ...
- 【HICP Gauss】数据库 数据库管理(数据库对象 表空间 索引 序列 分区 视图)-8
什么是数据库对象 数据库对象包括 表 索引 分区 视图 序列 同义词 数据库支持对象存储过程 自定义函数 触发器 表空间 高级包 表 数据库中的数据结构 存储数据以及描述数据间的关系 表由行和列组成 ...
- VLAN实验4:利用单臂路由实现VLAN间路由
单臂路由: 实验环境: 实验拓扑图: 实验编址: 实验步骤:1.创建VLAN并配置Access.Trunk接口. 我们在S2上创建VLAN10和VLAN20,并且吧链接PC1的E0/0/1和链接PC2 ...
- 关于struct和typedef struct
以 struct TelPhone{ ]; ]; }; 为例 这里先定义了一个 TelPhone的结构体. 加入需要为TelPhone定义一个别名: 其语法为 typedef TelPhone TP: ...
- 倍增法求lca(最近公共祖先)
倍增法求lca(最近公共祖先) 基本上每篇博客都会有参考文章,一是弥补不足,二是这本身也是我学习过程中找到的觉得好的资料 思路: 大致上算法的思路是这样发展来的. 想到求两个结点的最小公共祖先,我们可 ...
- Windows环境下安装和使用nginx1.16.0
nginx是一款开源的HTTP服务器和反向代理服务器,nginx可以作为Web服务器提供HTTP访问功能,类似于Apache.IIS等.目前nginx已经在国内外很多网站作为Web服务器或反向代理服务 ...
- Principal Component Analysis: 用公式来描述我们想要PCA做什么
PCA要做什么? 我们想将数据从二维降到一维,那么怎么找到这条好的直线对数据进行投影呢? 上图中红色的那条直线是个不错的选择,因为点到投影到这条直线上的点之间的距离(蓝色的线)非常小;反之 ...
- AST11103 Problem Solving
AST11103 Problem Solving with Programming SkillsAdditional Individual Assignment: Min-Game Programmi ...
- xshell连接不上阿里云服务器Could not connect to 'ip' (port 22): Connection failed.解决过程
记一次xshell阿里云服务器突然连接不上的解决办法: 1, 确认阿里云服务器安全组出入都有22,百度出来都说的这个和ip拦截设置,以防万一都设置了:但楼主设置后,还是连不上服务器: 只好下一步 2, ...