powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Задача, запущенная в дочернем окне подвешивает интерфейс
21 сообщений из 46, страница 2 из 2
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742688
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, Task.Run в portable так же недоступен :)
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742692
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНадо только где-нибудь глобально хранить ссылку на соответствующий TaskScheduler (или SynchronizationContext), и дело в шляпе..
В это и проблема. Портабельные сборки тебя пошлют лесом с такой ссылкой :)
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742695
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я запутался, portable это что?
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742701
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ запутался, portable это что?
Вот с этого и нужно было начинать А именно разобраться, что же такое portable сборки :)

http://msdn.microsoft.com/en-us/library/vstudio/gg597391.aspx
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742708
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

мда. молодежь не знает классику. прискорбно это.
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742717
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЯ запутался, portable это что?
Вот с этого и нужно было начинать А именно разобраться, что же такое portable сборки :)

http://msdn.microsoft.com/en-us/library/vstudio/gg597391.aspx И что, там TPL нету?
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742725
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИ что, там TPL нету?
Есть, но очень урезанный. Хорошо хоть Task.Factory.StartNew есть.
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742727
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, а ты сам создай DLL и посмотри.
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742731
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Посмотрел, TaskScheduler и SynchronizationContext в Portable есть. Было бы странно, если бы их там не было. Что же тогда тебя беспокоит? :-)
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742744
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочкаАлексей К,

мда. молодежь не знает классику. прискорбно это.Эта классика появилась сравнительно недавно. Про эту "классику" только молодёжь и знает. Мне на настоящий момент кроссплатформенность вообще фиолетова.
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742757
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Ну обратился, а дальше что? :) У нас же portable, никаких ссылок на Windows.winmd.А там вот так получается:

Код: c#
1.
ViewModel => TaskScheduler => SynchronizationContext => WPF (Win RT) Dispatcher


Тут и без своих интерфейсов аж две абстракции над Dispatcher. Так что portable не пострадает. :-)

Надо только где-нибудь глобально хранить ссылку на соответствующий TaskScheduler (или SynchronizationContext), и дело в шляпе..

Мне нужно это запихнуть в portable. Как?

Код: c#
1.
2.
var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { });
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742775
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас сделано так. Плохо, но работает. http://codearticles.ru/articles/2494
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742821
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, ни слова про TaskEx из Microsoft.Bcl.Async :)
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38742850
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Ккапитанская дочкаАлексей К,

мда. молодежь не знает классику. прискорбно это.Эта классика появилась сравнительно недавно. Про эту "классику" только молодёжь и знает. Мне на настоящий момент кроссплатформенность вообще фиолетова.

я про фурманова вообще-то. это ж шутка была. знаю я и про 4.0 и про 4.5 и про C#6.0 и про run и не про run и вообще ежели кто не знает есть такой журнал msdn. почитывайте на досуге там разные умные (и очень умные) люди пишут всякие замудреные штуки.
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38743005
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
А там вот так получается:

Код: c#
1.
ViewModel => TaskScheduler => SynchronizationContext => WPF (Win RT) Dispatcher


Тут и без своих интерфейсов аж две абстракции над Dispatcher. Так что portable не пострадает. :-)

Надо только где-нибудь глобально хранить ссылку на соответствующий TaskScheduler (или SynchronizationContext), и дело в шляпе..

Мне нужно это запихнуть в portable. Как?

Код: c#
1.
2.
var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;
await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { });

Повторюсь:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    public static class TaskHelper
    {
        // Вызываем при старте приложения
        public static void InitializeSyncScheduler()
        {
            SyncScheduler = TaskScheduler.FromCurrentSynchronizationContext();
            SyncFactory = new TaskFactory(SyncScheduler);
        }
 
        public static TaskScheduler SyncScheduler { get; private set; }
        
        public static TaskFactory SyncFactory { get; private set; }
    }


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
class MyViewModel
{
    public void Execute()
    {
        Task.Factory
            .StartNew(() => { })
            .ContinueWith(t => {  }, TaskHelper.SyncScheduler);
    }
}
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38743012
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку:
Код: c#
1.
2.
3.
4.
5.
6.
7.
class MyViewModel
{
    public void Execute()
    {
        TaskHelper.SyncFactory.StartNew(() => { });
    }
}
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38743022
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочкая про фурманова вообще-то.Я не понял причём тут Фурманов. Ладно, проехали.
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38743120
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Ккапитанская дочкая про фурманова вообще-то.Я не понял причём тут Фурманов. Ладно, проехали.

фрунзе. легко одного с другим спутать. суть шукти та же
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38743151
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочкаАлексей Кпропущено...
Я не понял причём тут Фурманов. Ладно, проехали.

фрунзе. легко одного с другим спутать. суть шукти та жеok
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38743225
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, короче, забей :)
...
Рейтинг: 0 / 0
Задача, запущенная в дочернем окне подвешивает интерфейс
    #38743247
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К, короче, забей :)С удовольствием! Это я умею.
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Задача, запущенная в дочернем окне подвешивает интерфейс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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