Вы действительно должны дать более подробную информацию о вашей проблеме. Я могу быть совершенно неправ, но я собираюсь сделать снимок в темноте. Исходя из того, что я представляю себе, вы хотите, чтобы показывался заставочный экран, выполнялась некоторая обработка в другом потоке, а затем заставочный экран исчезал после завершения.
Для этого вам нужно переместить вызов GetFromServer()
на BackgroundWorker
. Затем переместите
this.Hide();
_serverData = new ArrayList();
_thisData.Add(_allServerNarrators);
_thisData.Add(_serverNarrators);
код для обработчика событий BackgroundWorker_RunWorkerCompleted
.
Для использования BackgroundWorker
:
1) Инициализировать BackGroundWorker
BackgroundWorker myWorker = new BackgroundWorker();
2) Добавить обработчики событий
myWorker.DoWork += new DoWorkEventHandler(myWorker_DoWork);
//put the work you want done in this one
myWorker.RunWorkerCompleted +=
new RunWorkerCompletedEventHandler(myWorker_RunWorkerCompleted);
//this gets fired when the work is finished
3) Добавить код в обработчики событий.
4) Позвоните myWorker.RunWorkerAsync()
, чтобы начать работать.
Как отдельное примечание, вы, похоже, ничего не делаете с ArrayList
, который вы передаете конструктору заставки. Это предназначено?