C#多线程控制进度条之异步调用

C#多线程控制进度条之异步调用是如何实现的呢?现在让我们看看具体的步骤和实现:

在上面的代码中,我们注意到,我们没有给工作线程进入点(RunTaskThreadStart)传递任何参数,我们采用声明一个窗体类的字段 _seconds 来给工作线程传递参数。在某种应用场合不能够给工作线程直接传递参数也是一件非常痛苦的事情。

C#多线程控制进度条之异步调用的必要性:如何改进呢?我们可以使用委托来进行异步调用。委托是支持传递参数的。这样,就消除了我们刚才的问题,使我们能够消除额外的字段声明和额外的工作线程函数。

如果你不熟悉委托,你可以简单的把它理解为安全的函数指针。采用了委托异步调用,代码片断如下:

 
 
 
  1. // 执行任务的委托声明  
  2. delegate void RunTaskDelegate( int seconds );  
  3.  
  4. // 通过创建委托解决传递参数问题  
  5. private void _btnRun_Click(  
  6.  
  7.  object sender, System.EventArgs e )  
  8. { //C#多线程控制进度条之异步调用 
  9. RunTaskDelegate runTask =  
  10.  
  11.  new RunTaskDelegate( RunTask );  
  12.  
  13. // 委托同步调用方式  
  14. runTask( Convert.ToInt16( _txtSecond.Value ) );  
  15. }  
  16.  
  17. //通过创建委托解决传递参数问题,  
  18.  
  19. //通过委托的异步调用消除用户界面线程的阻塞问题  
  20. private void _btnRun_Click(   
  21.  
  22. object sender, System.EventArgs e )  
  23. {  
  24. RunTaskDelegate runTask =   
  25. new RunTaskDelegate( RunTask );  
  26.  
  27. // 委托异步调用方式 ,C#多线程控制进度条之异步调用 
  28. runTask.BeginInvoke( 
  29. Convert.ToInt16( _txtSecond.Value ), nullnull );  

C#多线程控制进度条之异步调用的基本内容就向你介绍到这里,希望对你了解和学习C#多线程控制进度条之异步调用有所帮助。

【编辑推荐】

  1. C#进度条实现实例
  2. C#进度条之控制台显示浅析
  3. C# WinForm进度条实现浅析
  4. C#多线程控制进度条之长任务操作
  5. C#多线程控制进度条之长异步操作
THE END