这篇文章主要讲解了“C#多线程控制进度条的异步调用怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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#多线程控制进度条的异步调用怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。