2013-12-12 71 views
0

我目前正在使用一個頁面,用戶可以上傳大文件並輸入數量的行數。然後我的功能根據用戶想要的行號將大文件分割成更小的文件。Web窗體顯示將大文件拆分爲更小的文件的進度

無論如何,假設我最終爲10,000個記錄的原始文件創建了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); 
    } 

回答

0

使用BackgroundWorker來完成這項工作。這將負責在非UI線程中執行長時間運行的工作,以便不會阻塞UI,並提供便捷的方式隨着工作進度更新UI,並在工作完成時更新它。

只需創建一個工人,做一個DoWork事件處理的工作,從處理程序調用UpdateProgress當你完成一個文件,然後更新在ProgressUpdated事件處理當前進度的UI。在BackgroundWorker的MSDN頁面上以及網絡上的其他地方都有很多關於此模式的示例。

相關問題