C# 异步,执行简单但耗时的操作
我正在做一个WPF应用程序,它必须扫描文件夹和文件,正如您所知,即使不太多,也需要一些时间来迭代许多文件夹。显然,您不想让应用程序用户等待,不能执行任何其他操作(或者只是为了让UI不冻结)。我应该从哪里开始学习如何异步执行文件夹扫描?如果可能,一个简单的参考C# 异步,执行简单但耗时的操作,c#,wpf,C#,Wpf,我正在做一个WPF应用程序,它必须扫描文件夹和文件,正如您所知,即使不太多,也需要一些时间来迭代许多文件夹。显然,您不想让应用程序用户等待,不能执行任何其他操作(或者只是为了让UI不冻结)。我应该从哪里开始学习如何异步执行文件夹扫描?如果可能,一个简单的参考 祝你今天愉快 可能.NET framekwork的线程功能上的MSDN页面是一个。最简单的选择可能是使用。这将自动允许您将“工作”推送到后台,并向WPF线程报告进度和完成情况,而无需通过调度程序手动同步 另一种选择是通过具有延续性的任务使用
祝你今天愉快 可能.NET framekwork的线程功能上的MSDN页面是一个。最简单的选择可能是使用。这将自动允许您将“工作”推送到后台,并向WPF线程报告进度和完成情况,而无需通过调度程序手动同步 另一种选择是通过具有延续性的任务使用TPL。例如,启动方法时,可以执行以下操作:
// Disable your UI...
// Start your "work"
var task = Task.Factory.StartNew( () =>
{
// Do your processing here...
});
task.ContinueWith( t =>
{
// Report results and re-enable UI here...
}, TaskScheduler.FromCurrentSynchronizationContext());
这显示了如何使用,包括将UI调用分派回UI线程