我目前正在开发一个页面,用户可以在该页面上传一个大文件并输入金额行号。然后,我的函数根据用户想要的行号将大文件拆分为小文件。
无论如何,假设我最终为10000条记录的原始文件创建了100个文件,而用户希望每个文件有100条记录。
我正在寻找一种方法,在我的屏幕上显示到目前为止创建的文件数量,而该功能仍在运行?
protected void SplitFileBtn_Click(object sender, EventArgs e)
{
var directory = new DirectoryInfo(fileName);
Empty(directory);
var fileSize = FileSizeInput.Text;
_sxw.Start();
SplitFile(100, fileName);
}
使用BackgroundWorker
来完成工作。这将负责在非UI线程中执行长时间运行的工作,从而不会阻塞UI,并提供了随工作进度更新UI以及在工作完成时更新UI的方便方法。
只需创建一个worker,在DoWork
事件处理程序中执行工作,在完成文件时从该处理程序调用UpdateProgress
,然后使用ProgressUpdated
事件处理程序的当前进度更新UI。在BackgroundWorker
的MSDN页面上,以及网络上的其他地方,有许多遵循此模式的示例。