Как я могу использовать прогресс, чтобы показать прогресс записей, вставляемых в таблицу
На данный момент я сделал messagebox из формы, которая дает мне возможность вводить новые записи в мою таблицу из листа excel или конвертировать ее в совершенно новую таблицу.
вот этот код:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick ProgressBar1.Maximum = Form1.totalrecords ProgressBar1.Increment(1) If ProgressBar1.Value = ProgressBar1.Maximum Then Timer1.Stop() End If End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Form1.import_new_table() Form1.divide_temp_table_into_other_tables() Timer1.Start() End Sub
то
Form1.totalrecordsон основан на общем количестве строк на листе excel, который копируется в базу данных.
Проблема, с которой я сталкиваюсь, заключается в том, что экран зависает до тех пор, пока процесс не будет завершен, и индикатор выполнения, кажется, запускается после импорта таблицы.
Есть предложения?
Что я уже пробовал:
Я попытался установить минимальное значение и перейти к максимальному значению, но эта проблема, похоже, остается постоянной.
[ПРАВКА ПОСЛЕ РЕШЕНИЯ 1]
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click BackgroundWorker1.RunWorkerAsync() Form1.import_new_table() Form1.divide_temp_table_into_other_tables() End Sub Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork For x As Integer = 0 To 100 System.Threading.Thread.Sleep(100) BackgroundWorker1.ReportProgress(CInt(x / Form1.totalrecords) * 100) Next End Sub Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged ProgressBar1.Value = e.ProgressPercentage ' If ProgressBar1.Value = ProgressBar1.Maximum Then ' End If End Sub Private Sub Import_excel_Load(sender As Object, e As EventArgs) Handles MyBase.Load ProgressBar1.Maximum = Form1.totalrecords End Sub
однако индикатор выполнения не двигается, и теперь память намного больше-она была около 152 МБ и теперь стреляет до 9 - 10 Гб.