Вы действительно должны дать более подробную информацию о своей проблеме. Я мог быть совершенно неправ, но я сделаю снимок в темноте. Из того, что я представляю, происходит, и вы хотите, вы хотите, чтобы экран заставки отображался, выполнял некоторую обработку в другом потоке, затем экран заставки исчезнет, когда закончите.
Чтобы сделать это, вы 'захочет переместить вызов 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
, который вы передаете конструктору заставки. Это предназначено?