Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Запуск формы в потоке  (Прочитано 5402 раз)
0 Пользователей и 1 Гость смотрят эту тему.
h.m.f.
Участник

ru
Offline Offline
Пол: Мужской

« : 14-04-2006 07:43 » 

Есть два потока - один пингует БД, другой в это время отображает форму. На форме - только label - но он не отображается, а вместо него показывается кусок окна, которое было на этом месте до запуска проги. Подскажите как исправить

Код:
MainClass
{
public static bool PingConnection=false;
Main()
{
Thread ShowConnForm=new Thread(new ThreadStart(thread_ShowConnForm));
ShowConnForm.Start();
Thread TestConnection=new Thread(new ThreadStart(thread_TestConnection));
TestConnection.Start();
}

private static void thread_ShowConnForm()
{
ConnectedToMySQLForm ConnForm =new ConnectedToMySQLForm();
ConnForm.Show();
while(!PingConnection)
{
System.Windows.Forms.Timer timer=new System.Windows.Forms.Timer();
timer.Interval=100;
timer.Start();
}
ConnForm.Close();
}
private static void thread_TestConnection()
{
PingConnection=DataBase.MySQL.TestConnection(DataBase.MySQL.ConnectionString);
}
Записан
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #1 : 14-04-2006 07:49 » 

а где сам Label обновляется и прорисовывается?
ConnForm вообще обноляется (попробуй переместить за экран и вернуть обратно)
Записан

Удачного всем кодинга! -=x[PooH]x=-
h.m.f.
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 14-04-2006 09:33 » 

Label я вообще не трогаю - в ide vs2003 перетащил на форму и больше с ним ничего не делаю. Такое впечатление, что программа работает вообще как один поток. Может проблеммы из-за while??? А как вообще правильно отображать окно, которое должно закрываться при завершения другого потока?
Записан
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #3 : 14-04-2006 11:00 » 

ну я бы создал окно в main, а из трида делал ему SendMessage, но вроде и твой способ должен работать.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #4 : 14-04-2006 21:00 » 

h.m.f., почитай
http://www.codeproject.com/csharp/apploadingarticle.asp
http://rsdn.ru/article/dotnet/multithrwinfrms.xml
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines