1
excel 시트에서 SQL 서버 으로 레코드를 업로드해야합니다. devexpress 진행률 막대 에 진행 상황을 표시해야하며 100에서 1을 업로드하는 것과 같은 방식이어야합니다. 완료 될 때까지 증가하십시오.devexpress progress bar performstep 메서드가 보이지 않는다
excel 시트에서 SQL 서버 으로 레코드를 업로드해야합니다. devexpress 진행률 막대 에 진행 상황을 표시해야하며 100에서 1을 업로드하는 것과 같은 방식이어야합니다. 완료 될 때까지 증가하십시오.devexpress progress bar performstep 메서드가 보이지 않는다
BackgroundWorker을 작성하고 진행을 메인 GUI 스레드로보고하십시오. 그런 다음 BackgroundWorker에서 오는 상태로 진행률 막대 값을 업데이트하십시오.
예를 들어 DevExpress ProgressBar 대신 일반적인 WinForms ProgressBar를 사용하지만 원칙은 동일합니다.
public partial class Progress : Form
{
readonly BackgroundWorker _worker = new BackgroundWorker();
public Progress()
{
InitializeComponent();
_worker.WorkerReportsProgress = true;
_worker.DoWork += _worker_DoWork;
_worker.ProgressChanged += WorkerProgressChanged;
_worker.RunWorkerCompleted += WorkerRunWorkerCompleted;
_worker.RunWorkerAsync();
}
private void _worker_DoWork(object sender, DoWorkEventArgs e)
{
var worker = sender as BackgroundWorker;
// Simulate work (uploading Excel records to SQL Server)
for (var i = 1; i <= 100; i++)
{
if (worker.CancellationPending)
{
e.Cancel = true;
break;
}
// Upload some data here, Sleep(100) is just an example
Thread.Sleep(100);
// Calculate current progress and report
worker.ReportProgress(i);
}
}
void WorkerProgressChanged(object sender, ProgressChangedEventArgs e)
{
_progressBar.Value = e.ProgressPercentage;
}
void WorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
_progressBar.Value = 0;
}
}
대신 MarqueeProgressBasrControl을 사용할 것을 제안합니다. progressbar 컨트롤을 사용할 때 행의 양을 알아야합니다. 일부 파일은 클 수 있습니다. –