我是 C# 的新手(我来自 C),所以我对异步操作有点困惑。
我有一个类,它具有我程序的所有“重要”功能,它下载文件并将其添加到文件夹等。
然后我有一个 WPF 表单(图形界面),所以当用户选择一个文件夹时,它会扫描文件夹中的所有文件并下载所有音乐曲目的封面。
我想做一个进度条,明明必须是异步的,不知道该由谁来做。
我想当用户点击按钮时我必须异步调用“重要”函数
有什么好的教程可以做这个吗?或者你能告诉我基本步骤吗?
我是 C# 的新手(我来自 C),所以我对异步操作有点困惑。
我有一个类,它具有我程序的所有“重要”功能,它下载文件并将其添加到文件夹等。
然后我有一个 WPF 表单(图形界面),所以当用户选择一个文件夹时,它会扫描文件夹中的所有文件并下载所有音乐曲目的封面。
我想做一个进度条,明明必须是异步的,不知道该由谁来做。
我想当用户点击按钮时我必须异步调用“重要”函数
有什么好的教程可以做这个吗?或者你能告诉我基本步骤吗?
您可以使用BackgroundWorker组件,您可以按照本教程来使您的进度条正常工作。
欢迎来到 C#.Net =D
TPL(任务并行库)是帮助您进行异步编程的类的集合,并且由于您使用 WPF 来显示数据,我还建议您阅读有关MVVM (Model-View-ViewModel) 的信息。对于具有用户界面的应用程序来说,这是一种非常重要的设计模式。
享受阅读:D
在你完成它之后,也许下面的代码示例可以帮助你实现你的异步行为。
在 MainWindow.xaml 中:
<ProgressBar Name="progressBar" Visibility="{Binding ProgressBarVisible, Converter=booleanVisibilityConverter}" IsIndeterminate="True" Width="100"/>
在 MainWindowViewModel.cs 中:
public MainWindowViewModel : INotifyPropertyChanged
{
public bool ProgressBarVisible {
get { return progressBarVisible; }
set {
progressBarVisible=value;
RaisePropertyChanged("ProgressBarVisible");
}
}
public void LoadImages()
{
ProgressBarVisible = true;
//your logic for downloading the images
ProgressBarVisible = false;
}
public void DownloadImagesAsync()
{
Task.Factory.StartNew(LoadImages);
}
}