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

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

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


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

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

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

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

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

4
Эксперт .NET
14841 / 11228 / 2947
Регистрация: 17.09.2011
Сообщений: 18,811
06.01.2016, 16:40 2
Цитата Сообщение от FrozenRain Посмотреть сообщение
при создание окна я хочу в конструкторе заполнять DataSet.
Очень плохая это идея — выполнять трудоемкие операции в конструкторе.
Конструктор должен только инициализировать поля.

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

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

Альтернативные решения описаны например в Async OOP 2: Constructors
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 11
06.01.2016, 19:16  [ТС] 4
kolorotur Мои познания скудны но у апликейшена кажется 2 события startup и shutdown как же мне определить другой момент загрузки проекта ? оО В книге метью макдонолда показан пример с заставкой загрузки она вызывается и выключается в конструкторе окна WPF приложения, от сюда и пал выбор на подгрузку в конструкторе. Мне не принципиально я могу и синхронно загрузится, но на те же грабли 2 раз наступать желания особого нет, да и интересно как же все таки верно. Если я создам асинхронное событие и вызову его сразу после метода InitializeComponent() эффект же будет тот же самый.... Не могли бы вы показать конкретный пример того о чем вы сказали. Заранее благодарю.
0
Эксперт .NET
14841 / 11228 / 2947
Регистрация: 17.09.2011
Сообщений: 18,811
06.01.2016, 20:44 5
Цитата Сообщение от FrozenRain Посмотреть сообщение
у апликейшена кажется 2 события startup и shutdown как же мне определить другой момент загрузки проекта ?
Этого вполне достаточно.
В событии Startup и заполняйте данные — хоть синхронно, хоть асинхронно — по вашему желанию.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2016, 20:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.