C#多线程控制进度条之异步调用是如何实现的呢?现在让我们看看具体的步骤和实现:
创新互联专业为企业提供泰兴网站建设、泰兴做网站、泰兴网站设计、泰兴网站制作等企业网站建设、网页设计与制作、泰兴企业网站模板建站服务,十多年泰兴做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
在上面的代码中,我们注意到,我们没有给工作线程进入点(RunTaskThreadStart)传递任何参数,我们采用声明一个窗体类的字段 _seconds 来给工作线程传递参数。在某种应用场合不能够给工作线程直接传递参数也是一件非常痛苦的事情。
C#多线程控制进度条之异步调用的必要性:如何改进呢?我们可以使用委托来进行异步调用。委托是支持传递参数的。这样,就消除了我们刚才的问题,使我们能够消除额外的字段声明和额外的工作线程函数。
如果你不熟悉委托,你可以简单的把它理解为安全的函数指针。采用了委托异步调用,代码片断如下:
- // 执行任务的委托声明
- delegate void RunTaskDelegate( int seconds );
- // 通过创建委托解决传递参数问题
- private void _btnRun_Click(
- object sender, System.EventArgs e )
- { //C#多线程控制进度条之异步调用
- RunTaskDelegate runTask =
- new RunTaskDelegate( RunTask );
- // 委托同步调用方式
- runTask( Convert.ToInt16( _txtSecond.Value ) );
- }
- //通过创建委托解决传递参数问题,
- //通过委托的异步调用消除用户界面线程的阻塞问题
- private void _btnRun_Click(
- object sender, System.EventArgs e )
- {
- RunTaskDelegate runTask =
- new RunTaskDelegate( RunTask );
- // 委托异步调用方式 ,C#多线程控制进度条之异步调用
- runTask.BeginInvoke(
- Convert.ToInt16( _txtSecond.Value ), null, null );
- }
C#多线程控制进度条之异步调用的基本内容就向你介绍到这里,希望对你了解和学习C#多线程控制进度条之异步调用有所帮助。
【编辑推荐】
分享名称:C#多线程控制进度条之异步调用
转载源于:http://www.shufengxianlan.com/qtweb/news8/167408.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联