Usando uma barra de progresso na carga do formulário

Desculpe pelo meu mau inglês

Eu estou tentando criar um formulário de ganhar em c # que irá obter alguns dados de um banco de dados enquanto ele está carregando

Eu quero usar uma barra de progresso para mostrar o progresso dos dados de leitura

Eu tentei este código (e também muitos outros)

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    this.Show();

    progressBar1.Value = 10;
    int n;

    n = 50;//number of records in DB ,
    double progress = 0;
    double progstep = 25 / n;
    for (int i = 1; i <= n; i++)
    {
        //getting 
        if (progress <= 100)
            progressBar1.Value = (int)progress;
    }

    progressBar1.Value = 35;

    n = 100;//number of records in DB for another data reading from DB ,
    progress = 35;
    progstep = 65 / n;
    for (int i = 1; i <= n; i++)
    {
        //getting data from DB
        dataGridView1.Rows.Add(....);//Adding that data to a datagrid -- parametrs removed.
        progress += progress;
        if (progress <= 100)
            progressBar1.Value = (int)progress;
    }

}

Mas, o problema é que o Form esperará, até que o progresso da leitura dos dados seja concluído e eu possa ver apenas uma barra de progresso completa e todos os dados carregados.

O que devo fazer também corrigir isso?

obrigado

questionAnswers(4)

yourAnswerToTheQuestion