Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Ещё одна ситуация с многопоточностью


Автор: ДобренькийПапаша 29.6.2011, 09:14
Следующая проблема. Из окна авторизации, в случае если запуск приложения происходит впервые, вызывается другое окно, которое показывает прогресс-бар с бегающей полосой (без прогресса как такового), а в этом время происходит запись первоначальных настроек в БД.

Если я сую код записи в БД в Activated() событие, то форма нифига не отображается, код отрабатывает и приложение работает дальше.
Т.е. без многопоточки тут не обойтись как я понимаю. Сделал так, но форма нифига не отображается. Опять тоже самое. Код отрабатывает и приложение идёт дальше.

Код

    public partial class FirstLaunchWindow : Window
    {
        Thread dbFillThread;
        public FirstLaunchWindow()
        {
            InitializeComponent();
            this.dbFillThread = new Thread(FillDb);
            dbFillThread.Start();
        }

        private void FillDb()
        {
            DbInfrastructure.FillPaymentDevicesByDefault();
            DbInfrastructure.FillSessionDataByDefault();
            DbInfrastructure.FillParametersByDefault();
            DbInfrastructure.FillNominalsByDefault();
        }

        private void FFirstLaunchWindow_Activated(object sender, EventArgs e)
        {
            //Хрена лысого! Форму не видно! 
            if (dbFillThread != null)
            {
                dbFillThread.Join();
                WindowsManagement.OpenWindow(new ServiceMainWindow());
                WindowsManagement.CloseWindow(this);
            }
        }
    }


p.s. С настройками самого окна всё правильно. Проверил. Без кода всего этого - окно отображается нормально.
p.p.s. А может тут и многопоточка вообще нафиг не нужна? Просто надо правильное событие загрузки окна выбрать в которое вставить код?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)