Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
1

Одно WPF окно в два потока - NullReferenceException

06.03.2012, 03:19. Показов 1536. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть WPF окно, пустое? описание которого находится в WPF User Control Library.
Есть функция, которая создаёт экземпляр этого окна и отображает его.
Данная функция вызывается в 2х потоках идущих подряд (т.е. вызывается 1ый поток, за ним 2ой).
Компилируется нормально, а вот работает через раз: иногда нормально запускается, иногда - вылетает исключение System.NullReferenceException: Object reference not set to an instance or an object.
С чем это связано и как это можно исправить?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2012, 03:19
Ответы с готовыми решениями:

Хочу закрыть одно окно а закрывается два
Я недавно начал изучать (Java: GUI) и хожу на курсы. В конце года мы здаем проект. Я решил сделать...

PascalABC.net: разделить одно окно на два
здравствуйте! подскажите, пожалуйста, как разделить в PascalABC.net одно окно на два (чтобы...

Два потока WinWaitActive - сделать паузу, пока не появится окно
Проблема в следующем, мне нужно сделать паузу, пока не появится окно, либо другое окно(Sleep() не...

Два окна и одно значение MFC: Как передать строку в первое окно?
Доброе время суток! Не могу понять и разобраться. Есть дав диалоговых окна. На первом окне есть...

2
273 / 203 / 30
Регистрация: 18.08.2010
Сообщений: 229
06.03.2012, 16:35 2
Скинь мне телефоны экстрасенсов, я сразу скажу в чем ошибка
0
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
06.03.2012, 17:36  [ТС] 3
Лучший ответ Сообщение было отмечено M__A__K как решение

Решение

alexsave, просто я ничего в коде не мудрил и думаю, что тут какая-то идеологическая ошибка. потому описал ситуацию и решил, что этого достаточно.

вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static void Main( string[] args )
{
    var thr1 = new Thread( () =>
        {
            var wnd = new Window1();
            wnd.ShowDialog();
        } );
    var thr2 = new Thread( () =>
        {
            var wnd = new Window1();
            wnd.ShowDialog();
        } );
    thr1.SetApartmentState( ApartmentState.STA );
    thr2.SetApartmentState( ApartmentState.STA );
    thr1.Start();
    thr2.Start();
    thr1.Join();
    thr2.Join();
}
данная программа представляет собой консольное приложение, к которому подключена WPF User Control Library с окном Window1. В коде окна я ничего не редактировал, т.е. просто добавил итем Window (WPF) в проект и всё.
в прикреплённом файле - проект VS 2010
Вложения
Тип файла: rar 123.rar (105.0 Кб, 7 просмотров)
0
06.03.2012, 17:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2012, 17:36
Помогаю со студенческими работами здесь

Два потока, две очереди, два потока
Есть две очереди. Каждая из них заполняется своим потоком. Есть два потока, которые достают данные...

Два segue, Два viewController, Одно отображение
Добрый день! Изучаю работу c segue - и столкнулся с проблемой. Какая стоит передо мной задача....

Что будет, если два разных потока попытаются отправить одновременно одному клиенту два разных пакета
Здравствуйте! Имеется вот такой незамысловатый метод отправки пакетов на сокет клиента ...

WPF. Как вставить картинку в Image, преобразованную из потока байтов
maintStream = client.GetStream(); Image image = (Image) binFormatter.Deserialize(maintStream);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru