2013-12-12 3 views
0

현재 사용자가 큰 파일을 업로드하고 금액 행 번호를 입력 할 수있는 페이지 작업 중입니다. 그런 다음 내 함수는 사용자가 원하는 줄 번호에 따라 큰 파일을 작은 파일로 분할합니다.웹 양식은 큰 파일을 작은 파일로 분할하는 과정을 보여줍니다.

어쨌든 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 진행 상황을 UI로 업데이트하고 작업 완료시이를 업데이트하는 편리한 방법을 제공합니다.

은 간단하게하는 DoWork 이벤트 투수의 일을, 작업자를 만들려면 파일을 마칠 때 핸들러에서 UpdateProgress를 호출 한 다음 ProgressUpdated 이벤트 처리기에서 현재 진행 UI를 업데이트합니다. BackgroundWorker에 대한 MSDN 페이지 및 웹의 다른 곳에서이 패턴을 따르는 많은 예가 있습니다.

관련 문제