powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / в каком потоке выполняется InitializeComponent()?
2 сообщений из 2, страница 1 из 1
в каком потоке выполняется InitializeComponent()?
    #36958878
testing22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, а при создании окна в новом потоке, когда выполняется InitializeComponent() этого окна, он (и идущий за ним код) выполняется разве не в этом-же созданном потоке потоке? Я создаю окно указанным ниже способом, а в конструкторе, сразу после InitializeComponent() заполняю Source1 и Source2 данными. Периодически получаю ошибку при попытке добавить элемент в Source1 или Source2, что выполнение происходит не в потоке диспетчера. Отчего так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
            Thread t2 = new Thread(() =>
            {
                MyWindow = new MyWindow();
                MyWindow.Show();
                MyWindow.Closed += (sender2, e2) => MyWindow.Dispatcher.InvokeShutdown();
                MyWindow.dgr1.ItemsSource = Source1;
                MyWindow.dgr2.ItemsSource = Source2;
                System.Windows.Threading.Dispatcher.Run();
            });
            t2.IsBackground = true;
            t2.Name = "MyWindow Thread";
            t2.SetApartmentState(ApartmentState.STA);
            t2.Start();
...
Рейтинг: 0 / 0
в каком потоке выполняется InitializeComponent()?
    #37008463
Denis Gladkikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
testing22,

все окна, и их обработка работает в одном и том же потоке, на который есть ссылка в Dispatcher. Не думал что WPF/SL разрешать создавать окна в другом потоке вообще. Но в принципе, если разрешил, то его обработка происходит в потоке Dispatcher, установку свойств нужно делать именно в нем же. Просто логически нереально, чтобы окна, их обработка сообщений была в другом потоке, отличном от главного.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / в каком потоке выполняется InitializeComponent()?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]