Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Нехватает время на прорисовку Добавлено: 18.08.10 09:17  

Автор вопроса:  Сurious
Передо мной стоит следующая задача:

Существует одна форма, она открывает вторую форму. После кода открытия другой формы стоит цикл.

Form2.Show
For...
Next

Проблема в том что вторая форма должна отрисоваться до выполнения цикла, а пока цикл выполняется Form2 не успевает полностью отобразиться.

Помогите пожайлуста с этим.

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 18.08.10 09:49
А нафига он там стоит?

Ответить

Номер ответа: 2
Автор ответа:
 Сергей



ICQ: 558230345 

Вопросов: 7
Ответов: 91
 Профиль | | #2 Добавлено: 18.08.10 10:49
открывай вторую форму модально и в ней уже запускай цикл или лови окончание прорисовки второй формы.

Ответить

Номер ответа: 3
Автор ответа:
 Сurious



Вопросов: 7
Ответов: 18
 Профиль | | #3 Добавлено: 18.08.10 10:51
Значит нужен. Вопрос про форму, а не цикл.

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 18.08.10 12:01
В таком виде сделать не получится.

Можно было бы использовать механизмы синхронизации потоков, но поскольку мы имеем дело с UI потоком, и обе формы будут выполняться в нем, то скорее всего получится deadlock.
Поэтому цикл должен выполняться в отдельном потоке, плюс синхронизация (перед циклом через ManualResetEvent тормозим поток, когда вторая форма отобразилась, она активирует ManualResetEvent и цикл продолжает свою работу).

Можно не париться, а просто вынести цикл в отдельную процедуру в Form1, когда Form2 отобразится, она просто вызовет этот метод в Form1.

Ответить

Номер ответа: 5
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #5
Добавлено: 18.08.10 12:01
Ппц.
  1.  
  2. For...
  3. Next
  4. Form2.Show


Сначала проверь, потом отвечай, смекаешь?

Ответить

Номер ответа: 6
Автор ответа:
 Сurious



Вопросов: 7
Ответов: 18
 Профиль | | #6 Добавлено: 18.08.10 12:15
Сергей говорил:
открывай вторую форму модально и в ней уже запускай цикл

По моему самый лучший способ.
Всем спасибо.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам