Web窗体显示了将大文件拆分为小文件的过程



我目前正在开发一个页面,用户可以在该页面上传一个大文件并输入金额行号。然后,我的函数根据用户想要的行号将大文件拆分为小文件。

无论如何,假设我最终为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页面上,以及网络上的其他地方,有许多遵循此模式的示例。