Я получил действительно простой код, но не могу заставить его работать. Я использую BackgroundWorker. Проблема в том, что RunWorkerCompleted запущен быстро. Сразу после запуска я получаю сообщение «Работа завершена», но приложение остается замороженным в течение нескольких секунд, так как «DataType data = new DataType (path);» Бигн казнен. После этого я правильно заполнил все свои DataGridViews и т.д. Если я поменяю эту единственную строку с Thread.Sleep, все, кажется, будет работать хорошо. Есть идеи?
public frmWindow(string path)
{
InitializeComponent();
DataType d;
backgroundWorker1.RunWorkerAsync(path);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
string path = e.Argument as string;
DataType data = new DataType(path);
e.Result = data;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
d = e.Result as DataType;
MessageBox.Show("Work completed");
}