Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 进度条要求作为通过BackgroundWorker进行多线程处理的充分理由?_Multithreading_User Interface - Fatal编程技术网

Multithreading 进度条要求作为通过BackgroundWorker进行多线程处理的充分理由?

Multithreading 进度条要求作为通过BackgroundWorker进行多线程处理的充分理由?,multithreading,user-interface,Multithreading,User Interface,假设多线程应用程序正在调试地狱,应该不惜一切代价避免 显示进度条的要求是否足以作为进入多线程焊盘的理由 具体来说,假设一个C#windows forms.NET 3.0应用程序需要下载一个100MB的文件。多线程(通过BackgroundWorker组件)在该线程上进行下载是否正确,以便UI线程可以自由更新显示进度的进度条 对不起,如果这个问题有点模糊。我以前没有做过任何多线程的工作。你没有说过你在使用什么语言;例如,在C#中,您可以将WebClient与DownloadFileAsync和Do

假设多线程应用程序正在调试地狱,应该不惜一切代价避免

显示进度条的要求是否足以作为进入多线程焊盘的理由

具体来说,假设一个C#windows forms.NET 3.0应用程序需要下载一个100MB的文件。多线程(通过BackgroundWorker组件)在该线程上进行下载是否正确,以便UI线程可以自由更新显示进度的进度条


对不起,如果这个问题有点模糊。我以前没有做过任何多线程的工作。

你没有说过你在使用什么语言;例如,在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?如果没有线程,你打算怎么做?