Multithreading 进度条要求作为通过BackgroundWorker进行多线程处理的充分理由?
假设多线程应用程序正在调试地狱,应该不惜一切代价避免 显示进度条的要求是否足以作为进入多线程焊盘的理由 具体来说,假设一个C#windows forms.NET 3.0应用程序需要下载一个100MB的文件。多线程(通过BackgroundWorker组件)在该线程上进行下载是否正确,以便UI线程可以自由更新显示进度的进度条Multithreading 进度条要求作为通过BackgroundWorker进行多线程处理的充分理由?,multithreading,user-interface,Multithreading,User Interface,假设多线程应用程序正在调试地狱,应该不惜一切代价避免 显示进度条的要求是否足以作为进入多线程焊盘的理由 具体来说,假设一个C#windows forms.NET 3.0应用程序需要下载一个100MB的文件。多线程(通过BackgroundWorker组件)在该线程上进行下载是否正确,以便UI线程可以自由更新显示进度的进度条 对不起,如果这个问题有点模糊。我以前没有做过任何多线程的工作。你没有说过你在使用什么语言;例如,在C#中,您可以将WebClient与DownloadFileAsync和Do
对不起,如果这个问题有点模糊。我以前没有做过任何多线程的工作。你没有说过你在使用什么语言;例如,在C#中,您可以将
WebClient
与DownloadFileAsync
和DownloadProgressChanged
虽然这是一个多线程程序,但我认为它是一个低复杂度的程序。 < p>你没有说过你使用的是什么语言;例如,在C#中,您可以将
WebClient
与DownloadFileAsync
和DownloadProgressChanged
<> P>这是一个多线程程序,我认为它是一个低复杂度的程序。< P>当你正在创建一个GUI应用程序时,在UI线程上做所有事情的主要问题,例如,它可能会在等待I/O时冻结您的应用程序。因此,如果您没有任何东西可能会将应用程序冻结足够长的时间,从而激怒用户(当然,这一时间非常主观),那么请继续使用单线程应用程序。但除此之外,我想问题在于您对用户体验的重视程度。当您创建GUI应用程序时,在UI线程上执行所有操作的主要问题,例如,它可能会在等待I/O时冻结您的应用程序。因此,如果您没有任何东西可能会将应用程序冻结足够长的时间,从而激怒用户(当然,这一时间非常主观),那么请继续使用单线程应用程序。但除此之外,我想问题在于您对用户体验的重视程度。这一点很好,但值得注意的是,DownLoadFileAsync提供了与BGW相同的API,并且可能在内部使用。谢谢。DownloadFileAsync听起来非常适合我的应用程序的要求。这一点很好,但值得注意的是,DownloadFileAsync提供了与BGW相同的API,并且可能在内部使用。谢谢。DownloadFileAsync听起来非常适合我的应用程序的要求。WinForms或WPF?您打算如何在没有线程的情况下完成它?WinForms还是WPF?如果没有线程,你打算怎么做?