2 
Kerman
Я попробовал сделать так:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            foreach (ClassName result in SuperClass.GetAll("xxx"))
            {
                worker.ReportProgress(0, result );
            }
        }
private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            ClassName result = (ClassName )e.UserState;
            listBox1.Items.Add(result.Param);
        }
Но код перестал работать (код класса не менялся вообще). Точнее начала появляться информация, которой не было без BackgroundWorker O_o Может быть асинхронность виновата? Или не знаю что