C# 在后台执行低优先级代码

C# 在后台执行低优先级代码,c#,.net-4.5,C#,.net 4.5,在我的应用程序中有一个GUI窗口,用户可以在该窗口中完成自己的工作,在该窗口中,用户可以触发一个函数,该函数将开始转换两个文件。因为这个转换需要很多年的时间,我不能简单地在同一个线程中执行它,因为整个窗口都会被冻结,直到转换代码完成后,让它继续运行 这里最好的解决方案是什么?我应该在单独的线程中执行转换代码吗 比如TaskFactory.StartNew?这是最好的途径吗?我喜欢这个解决方案,但如果我能将任务优先级设置为较低,这样在转换过程中PC中的其他应用程序就不会延迟,那就太好了,事实上,这

在我的应用程序中有一个GUI窗口,用户可以在该窗口中完成自己的工作,在该窗口中,用户可以触发一个函数,该函数将开始转换两个文件。因为这个转换需要很多年的时间,我不能简单地在同一个线程中执行它,因为整个窗口都会被冻结,直到转换代码完成后,让它继续运行

这里最好的解决方案是什么?我应该在单独的线程中执行转换代码吗


比如TaskFactory.StartNew?这是最好的途径吗?我喜欢这个解决方案,但如果我能将任务优先级设置为较低,这样在转换过程中PC中的其他应用程序就不会延迟,那就太好了,事实上,这会不会因为线程太密集而导致其他应用程序挂起?实际上,这是一个文件选择对话框,当选择完成后,我会为每个文件循环使用新的TaskFactory.StartNew。这当然只是一个难看的占位符解决方案。您可以使用BackgroundWorker,并在文件完成时向用户报告进度。