Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 11

WPF и асинхронные конструкторы

06.01.2016, 15:14. Показов 4446. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ребят столкнулся с такой проблемой что не могу пометить метод await в конструкторе. Все бы нечего но все вызова методов в конечном итоге сводятся либо к событию, либо к вызову из конструктора! Вы можете мне сказать а зачем тебе вообще это нада? На что отвечу при создание окна я хочу в конструкторе заполнять DataSet. 2 задача которая сраз приходит на ум, это так же при загрузки отправлять нное число запросов к базе не зависящих друг от друга. То есть нада дождаться завершения всех каждый запрос не зависит от предыдущего и при этом не по кнопочки события а при загрузке проекта. Всем спасибо за разъяснение.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.01.2016, 15:14
Ответы с готовыми решениями:

Webpack собирает проект, а приложение говорит что мои конструкторы не конструкторы
Помогите пожалуйста, в едином файле (не билде) всё работает хорошо, как только начинаю отделять классы и создавать билд, сразу ошибка в...

Определите класс матриц. Напишите перегруженные конструкторы для создания одномерной и двумерной матриц. В конструкторы передаются размерности матриц
Доброго времени суток всем) Извините если не в том разделе) Не могу понять как решить данную задачу "(Определите класс матриц....

Асинхронные автоматы
Ребят помогите найти ошибку в коде. AnsiString Anssinhr1(AnsiString S) { enum conditions {A,B}; conditions sit=A; ...

4
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.01.2016, 16:40
Цитата Сообщение от FrozenRain Посмотреть сообщение
при создание окна я хочу в конструкторе заполнять DataSet.
Очень плохая это идея — выполнять трудоемкие операции в конструкторе.
Конструктор должен только инициализировать поля.

Цитата Сообщение от FrozenRain Посмотреть сообщение
То есть нада дождаться завершения всех каждый запрос не зависит от предыдущего и при этом не по кнопочки события а при загрузке проекта.
Начните с простого — определите моменты, в которые проект считается:
а). Незагруженным
б). Загружаемым
в). Загруженным

А потом просто в соответствующий момент вызывайте нужные асинхронные методы для заполнения датасетов. Без кнопочек.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18286 / 14209 / 5368
Регистрация: 17.03.2014
Сообщений: 28,888
Записей в блоге: 1
06.01.2016, 16:50
FrozenRain, задача конструктора инициализировать объект в начальное согласованное состояние. Для этого он должен отработать от начала и до конца. Использование async/await подразумевает возврат исполнения вызвавшему методу с последующим продолжением исполнения что противоречит данному требованию. Плюс использование async подразумевает что метод должен вернуть Task<T> что было бы странно для конструктора. В итоге C# не поддерживает асинхронные конструкторы.

Альтернативные решения описаны например в Async OOP 2: Constructors
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 11
06.01.2016, 19:16  [ТС]
kolorotur Мои познания скудны но у апликейшена кажется 2 события startup и shutdown как же мне определить другой момент загрузки проекта ? оО В книге метью макдонолда показан пример с заставкой загрузки она вызывается и выключается в конструкторе окна WPF приложения, от сюда и пал выбор на подгрузку в конструкторе. Мне не принципиально я могу и синхронно загрузится, но на те же грабли 2 раз наступать желания особого нет, да и интересно как же все таки верно. Если я создам асинхронное событие и вызову его сразу после метода InitializeComponent() эффект же будет тот же самый.... Не могли бы вы показать конкретный пример того о чем вы сказали. Заранее благодарю.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.01.2016, 20:44
Цитата Сообщение от FrozenRain Посмотреть сообщение
у апликейшена кажется 2 события startup и shutdown как же мне определить другой момент загрузки проекта ?
Этого вполне достаточно.
В событии Startup и заполняйте данные — хоть синхронно, хоть асинхронно — по вашему желанию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.01.2016, 20:44
Помогаю со студенческими работами здесь

C++ Асинхронные сокеты
Дайте ссылку на хороший гайд по асинхронным сокетам. Везде используются синхронные.

Асинхронные сокеты
Здравствуйте. Очень нужна ваша помощь. Вот callback функция которая передается в метод асинхронного чтения сокета BeginReceive: ...

Асинхронные методы
Здравствуйте, использую VkNet, есть у меня запрос к api vk, а именно messages.search for (int i = 0; i &lt; listBox1.Items.Count; i++) ...

Асинхронные контроллеры
Не совсем понимаю как работают асинхронные контроллеры в ASP.NET MVC. Допустим есть два action method-а. Один синхронный второй...

Асинхронные операции на C#
Реализую обмен данными с устройством по USB-каналу (bulk передача) с использованием функций WinUSB API. Хочу реализовать асинхронное...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru