【发布时间】:2022-08-17 17:43:42
【问题描述】:
我创建了一个复制文件和文件夹的方法,这个方法存在于一个名为的类中帮手
static void List(string folder)
{
//methods to get files and folders and return IEnumerable
foreach (var dname in directories)
Copy(dname);
foreach (var fname in files)
Copy(fname);
}
效果很好,但是当用户单击主窗体.
到目前为止我有这个代码,应该添加任务或类似的获得进度,但它需要一个循环。
private void btnCopy_Click(object sender, EventArgs e)
{
string dir = \"Some\\\\Path\";
Helper.List(dir);
}
显然我无法跟踪我无法计算的内容,因此建议我使用委托从其他类方法中获取值,但我才刚刚开始,我未能在线找到一些有用的帮助。 有什么帮助吗?
-
您可能想看看official MS docs。简而言之,委托是一段可以作为参数传递给方法的代码
-
添加参数
Action<string> progressAction并调用progressAction(fileOrDirectoryName)。然后将记录字符串参数的委托传递给 TextBox 或其他任何东西,现在您就处于在事件处理程序中进行长时间运行的工作同时必须更新 UI 的美妙世界。 -
@CodeCaster -
Action<string> progressAction而不是IProgress<T>你真丢脸:D
标签: c# async-await delegates task