Net2.0 的新线程 ParameterizedThreadStart &BackgroundWorker

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(下) 本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。 阅读详情

如果你想为一个线程传入变量你怎么办?  

ThreadStart可不支持带参数的方法.所以你无法使用Thread来启动一个带参数的方法.. 

 
ThreadStart myThreadDelegate = new ThreadStart(ThreadMethod);
//public delegate void ThreadStart();  u can't pass a Parameter
Thread myThread = new Thread(myThreadDelegate);
myThread.Start();  //myThread.Start(o); Wrong!

不过在.Net1.0下,你可以通过Delegate的异步调用来实现 
http://www.cnblogs.com/idior/articles/100666.html 

现在在.Net2.0下提供了 ParameterizedThreadStart 这么一个Delegate.它和ThreadStart 的不同就在于可以拥有一个object类型的参数.也就是说你可以通过它来使用Thread类以启动一个线程并传入参数, 和Java很象了,不错的新功能. 
 
using System;
using System.Threading;
namespace ParameterizedThreadStartTest
{
class Program
{
static void Main(string[] args)
{
ParameterizedThreadStart myParameterizedThreadDelegate = new ParameterizedThreadStart(ThreadMethod);
Thread myThread = new Thread(myParameterizedThreadDelegate);
object o = "hello";
myThread.Start(o);
}
private static void ThreadMethod(object o)
{
string str = o as string;
Console.WriteLine(str);
}
}
}

还有一个新增的类 BackgroundWorker,可以用于启动后台线程,并在后台计算结束后及时调用主线程的方法.一个常见的应用就是在DataGrid中载入数据的时候.因为从数据库中载入DataSet比较耗时, 所以你可以使用 BackgroundWorker来进行载入, 当DataSet构造好后就立即绑定上DataGrid. 其实该功能同样可以通过Delegate的异步调用实现不过 BackgroundWorker用起来更方便一些. 
 
//1. Instantiate a BackgroundWorker instance:
BackgroundWorker myDataWorker = new BackgroundWorker();
//2. Setup a DoWork delegate that does the work that you want to be done on the background thread.

myDataWorker.DoWork += new DoWorkEventHandler(delegate(object o, DoWorkEventArgs workerEventArgs)
{
workerEventArgs.Result = new XXXDAL().GetData();
}
);
//3. Setup a RunWorkerCompleted delegate that handles updating your UI with the data recieved on the background thread.
myDataWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(delegate(object o, RunWorkerCompletedEventArgs workerEventArgs)
{
DataSet data = (DataSet) workerEventArgs.Result;
this.dataGrid.DataSource = data;
}
);
//4.Run your worker by calling the RunWorkerAsync() method on your BackgroundWorker instance.
myDataWorker.RunWorkerAsync();

计算机控制技术及应用 《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。 立即下载

相关推荐

WordPress搭建“外贸独立站”完整操作教程

  以往的文章,我们介绍了很多种搭建独立站的方式,有最省事的Shopify 、最专业的Magento以及最省钱的Wordpress Woocommerce。其中,通过主机托管的方式又分了免费的谷歌云vps主机、1美元Godaddy主机以及SiteGround共享主机三种。建站方法方式实在太多了,有免费的,有廉价的,有商业版的,有共享主机、有云主机主机以及各种各样的vps服务器,选择哪种方式,哪款主机,也只有真正试了才直到。   没错,上述的这些方法方式,无一例外,我都亲身折腾过。从个人实际需求和建站方式来

www25qi的博客 8077

.Net2.0 的新线程 ParameterizedThreadStart &BackgroundWorker

  如果你想为一个线程传入变量你怎么办? ThreadStart可不支持带参数的方法.所以你无法使用Thread来启动一个带参数的方法.. ThreadStart myThreadDelegate = new ThreadStart(ThreadMethod); //public delegate void ThreadStart();  u cant pass a Parameter   

707

COMSOL电磁仿真-网格剖分-边界层

介绍COMSOL在低频电磁场中边界层网格的剖分方法。

奇妙水果的技术博客,欢迎交流技术~ 4476

【zz】.Net2.0 的新线程 ParameterizedThreadStart &BackgroundWorker

如果你想为一个线程传入变量你怎么办? ThreadStart可不支持带参数的方法.所以你无法使用Thread来启动一个带参数的方法.. ThreadStart myThreadDelegate = new ThreadStart(ThreadMethod); //public delegate void ThreadStart(); u can't pass a P...

weixin_30699463的博客 123

EM算法求解混合伯努利模型

本文记录了EM算法求解混合伯努利分布的推导,并提供了matlab实验代码。

霁月难逢 彩云易散 6969

工厂自动化布线实战:从功率计算到线槽布局的完整避坑指南

本文详细介绍了工厂自动化布线的实战经验,从功率计算到线槽布局的完整避坑指南。通过三步计算法确定线径需求,强调电压降控制的重要性,并分享线槽布局的50%法则和强弱电分离技巧。特别针对移动设备和多芯信号线提供专业解决方案,帮助工程师避免常见错误,提升布线效率和质量。

weixin_29266007的博客 351

DataFormatString的用法相关的整理

VS2005下BoundField列如何使用DataFormatString属性  HtmlEncode="False" 完整日期时间格式 (long date + long time) dddd, MMMM dd, yyyy HH:mm:ss g 一般格式 (short date + short time) MM/dd/yyyy HH:mm G 一般格式 (short d

2957

内存|内存的概念、内存的作用、内存的物理结构及内存使用

内存是硬件,是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理。内存是与CPU沟通的桥梁,计算机中所有程序的运行都要依靠内存,内存对计算机的影响非常大。本文简单介绍了内存的概念、作用、物理结构以及使用,内存远不止如此,后续文章会逐步深入讲解。

qq_59938293的博客 2万+

SqlHelper类的方法

 using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.

2265

ardupilot 日志分析《xKF1信息》

ardupilot 日志分析系列将会把ardupilot所有的日志文档进行分析,为我们分析无人机的运行状态,炸鸡原因,传感器状态,电机状态,控制信息,滤波信息做准备。本节主要分析xKF1日志信息,欢迎批评指正。学习好ardupilot必须会分析飞行日志,从飞行日志中我们可以学到很多无人机的知识。无人机是综合知识的体现,涵盖:导航、控制、滤波、算法、协议等各种知识,只有更全面的学习,才能在无人机的道路上越走越远。

陌城烟雨 1225

借助AI搞定国社科“研究内容”部分!用Gemini 3 Pro轻松撰写6大模块,让基金本子效率质量更上一层楼

所谓研究整体框架,是对课题研究逻辑结构与技术路径的系统阐述,其核心在于通过研究目标分解、研究内容模块化与研究方法整合,构建一个层次清晰、逻辑严密、科学可行的研究体系。撰写要求:1)分要点、分层次列出主要研究内容,保持各部分之间的逻辑性、层次性与系统性;研究可行性可理解为开展本课题在理论基础、研究方法、研究条件、人员结构、平台支撑及外部协作等方面的可实施程度,可从内部条件与外部条件两个维度进行系统论证。研究背景为:我正在申报xxx年xxx(项目名称),课题名称为:xxx,拟采用的主要研究方法包括:xxx等;

智能AI让学术科研更容易 964

ASP.NET 在线客服源码

var online= new Array(); http://webpresence.qq.com/getonline?Type=1&13137813:">> if (online[0]==0) document.write(" 客服不在线,请留言>qq号码"); else document.write(" 在线即时交谈>qq号码");

782

数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 2(step by step)

数字逻辑第二章习题和详细步骤 2-1 ~ 2-78

weixin_62651190的博客 2306

点击链接弹出一个新窗口,并返回一个值到本页面

(一)调用链接的click事件     function showMallWinodw() { var result=window.showModalDialog("MallWindow.aspx","","dialogWidth: 820px;dialogHeight: 600px;help:0;resizable:0;center:1;location:0;scro

778

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ASP.NET 编写Google搜索框

ASP.NET 编写Google搜索框     无标题页        搜索是最好的老师,要善用搜索!!!    http://www.google.com/">http://www.google.com/logos/Logo_25wht.gif" align="middle" border="0" />      

771

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

用javascript实现GridView行背景色交替鼠标划过行变色点击行变色选中

用javascript/css实现GridView行背景色交替、鼠标划过行变色,点击行变色选中 来源:网络收集 作者:佚名 时间:2008-10-20 13:16:30前几天在博问里发现有人问关于 GridView点击行变色 的问题,突然想起很久很久以前,写过一篇文章 一个简单但常用的表格样式--鼠标划过行变色--简洁实现 ,是关于表格行颜色交替和鼠标指向时变色的,正好今天把那一篇

600

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

网站架构

 http://blog.csdn.net/kongqz/archive/2008/12/29/3637339.aspx http://www.ad0.cn/netfetch/read.php/1114.htm http://www.ad0.cn/netfetch/read.php/1114.htm http://www.ad0.cn/netfetch/read.php/111

538

Ajax AutoComplete 在Sql数据库中读取数据

前台                                      TargetControlID="TextBox1"          CompletionSetCount="12"          EnableCaching="true"          MinimumPrefixLength="1"          ServicePath="sql_test.asmx" 

495

ASP.NET 2.0 网站编译成一个DLL

 下载、安装Web Deployment Projects插件。       下载地址:VS 2005 Web Deployment Projects下载       这东西就是个msi,919K,直接安装就OK了。记得装的时候把VS关了。 创建Web Deployment项目       打开Web项目所在的解决方案,右键点击Web项目,选择"Add Web Deploy

461

通过SQL语句,把查询之后返回的结果打印成EXCEL表(二)

要先引入相应的EXCEL类。然后打印    //Print Into Excel SpreadSheet            Excel.Application excel = new Excel.Application();            int rowindex = 1;            int colindex = 0;          

446

“未将对象引用设置到对象的实例”问题小结

   今天下午调试Web程序,出现“未将对象引用设置到对象的实例”,看了看网上也没有特别实用的解决方法,最后发现有为仁兄竟然总结了十来种故障原因。晚上在家做App程序,竟然又是“未将对象引用设置到对象的实例”的错误,联想到以前也遇到过几次,那也学学这位仁兄做一个小结,省得以后再走弯路。废话少说。(一)代码:  SqlDataAdapter da = new SqlDataAdapter

437

通过SQl语句,把查询之后返回的结果打印成EXCEL表(一)

 using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using

404

缓存依赖

    缓存依赖主要由3个核心类来实现:CacheDependency、AggregateCacheDependency、SqlCacheDependency。CacheDependency 类是 AggregateCacheDependency 类和 SqlCacheDependency 类的父类。    CacheDependency 类      在存储于 ASP.NET 应用程序的 C

351

正则表达式集合

只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^/d{n}$"。只能输入至少n位的数字:"^/d{n,}$"。只能输入m~n位的数字:。"^/d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。只能输入有两位小数的正实数:"^[0-9]+/.([0-9]{2})$"。只能输入有1~3位小数的正实数:"^[0-9]+/.[0-9]{1,3}$"。只能输入非

347

功能强大的IP WEBSERVICE引用。查询世界IP所属地

http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx

332

11-01-演进-.NET GC发展史

.NET GC发展史映射硬件演进:从单核STW到多核并发,再到区域化细粒度回收。历经分代管理、ServerGC、BackgroundGC、LOH自动压缩、POH隔离、DATC自适应线程数及Region-based管理等关键革新,代码量从5000行增至4万+,复杂度指数上升。每一步优化均在暂停时间、吞吐量与资源开销间权衡,体现“实用主义”哲学。核心启示:GC演进由硬件驱动,方向明确——更短暂停、更高效率,但代价是工程复杂性持续攀升。

设计 AI 玩游戏🎮 347
上一篇: Sql 全文检索的建立二
下一篇: 通用分页存过程
beichen_
博客等级 码龄19年 17粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值