Winform не отображается, когда я пытался открыть событие backgroundworker_RunWorkerCompleted? - PullRequest
0 голосов
/ 07 августа 2010

детали моего действия: у меня есть winform, которая содержит только индикатор выполнения, который я сделал для выполнения некоторых вычислений и сохранил окончательное значение в db. Для этого я использовал индикатор выполнения и поток фонового работника.Я делаю все вычисления в фоновом потоке событий событие DoWork.Когда backgroundworker заканчивается, он вызывает событие RunWorkerCompleted, в котором я пытаюсь открыть еще одну winform.Проблема в том, что winform не видна.

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
{ 
    if (!string.IsNullOrEmpty(click)) { 
        if (click == "sales") { 
           Sales sales = new Sales(); 
           sales.MdiParent = mdiStockApp.mdi; 
           sales.Show(); 
           sales.Activate(); 
        } 
    } 
}

это событие RunWorkerCompleted, в котором я пытаюсь открыть другое событие.только сейчас я попробовал с form.Activate () тоже, но до сих пор нет

1 Ответ

0 голосов
/ 07 августа 2010

Может быть, BackgroundWorker OnWorkCompleted выбрасывает исключение между потоками?Попробуйте обработать пользовательский интерфейс в другом потоке, проверьте свойство this.IsInvokeRequired и используйте this.Invoke (...)

...