powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# async... await
25 сообщений из 317, страница 10 из 13
C# async... await
    #39574467
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRos,
А нафига нам тут портянки кода транспортного уровня?
пшел нах
...
Рейтинг: 0 / 0
C# async... await
    #39574482
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
C# async... await
    #39574489
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttrefregЕсли не конфигурировать поток, и вызвать код из UI, то UI будет постоянно задействоваться, что приводит к торможению UI, вплоть до полного зависания.То, о чём ты говоришь, вообще не имеет отношения к асинхронности. Никакого от слова совсем. Если хочешь выполнять тяжёлую CPU Bound работу, не влияя на UI, ты должен запустить задачу background потоке руками. Асинк эту задачу не решает.Почему идет отход от контекста? Вопрос был сформулирован четко: "Почему код не работает?" Вот и давайте ответим почему код не работает. И что надо сделать, что бы заработал.

hVosttrefregНадо было сделать по умолчанию false. Было бы более логично...
Ни в коем случае. Не логично ни разу :) false нужен только для писателей библиотек, а основная масса разрабов это прикладные разработчики.Вкусовщина. А я считаю что дополнительная обязанность (восстановление контекста), должна прописываться явно , А по-умолчанию, отключена
...
Рейтинг: 0 / 0
C# async... await
    #39574504
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>refreg, вчера, 18:50 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053247] [21053247]
>Попробуй везде ....
Провел эксперимент:
1. Тормознул хранимку на 15 сек.
2. На строку с sp(RowToEntity); поставил точку останова
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    //-- Выполнение хранимой процедуры
    public static async Task Entity_SP(string spname, dlg_sp sp, OracleParameter[] asp, dlg_RowToEntity RowToEntity) {
      nRow = 0;  //-- Число строк в выборке
      reader = null;

      using (OracleConnection connection = new OracleConnection(гп.str_Соединение)) {
        connection.Open();
        OracleCommand command = new OracleCommand("", connection);
        command.Parameters.Clear();
        command.Parameters.AddRange(asp);
        command.CommandText = spname;
        command.CommandType = CommandType.StoredProcedure;

        using (reader = (OracleDataReader)await command.ExecuteReaderAsync()) {
          //-- Формируем коллекцию из выборки
[color=red]          sp(RowToEntity); //-- Обратный вызов  [/color]        }
      }
    }
  }


3. Запустил приложение - таймер не работает

В случае await Task.Run имеем штатную работу таймера
...
Рейтинг: 0 / 0
C# async... await
    #39574510
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
А где использование ридера?
...
Рейтинг: 0 / 0
C# async... await
    #39574514
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 15:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21055580][21055580]

>А где использование ридера?
Так программа и не доходит до ридера, а таймер и не начинает работать. Не в ридере дело
...
Рейтинг: 0 / 0
C# async... await
    #39574517
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Код: c#
1.
2.
3.
4.
5.
6.
7.
Debug.WriteLine(Thread.CurrentThread.ManagedThreadId);
using (reader = (OracleDataReader)await command.ExecuteReaderAsync()) {
Debug.WriteLine(Thread.CurrentThread.ManagedThreadId);
          //-- Формируем коллекцию из выборки
[color=red]          sp(RowToEntity); //-- Обратный вызов  [/color]        }
Debug.WriteLine(Thread.CurrentThread.ManagedThreadId);
      }

Что выдает Debug output?
...
Рейтинг: 0 / 0
C# async... await
    #39574518
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Код: c#
1.
using (reader = (OracleDataReader)await command.ExecuteReaderAsync().ConfigureAwait(false)) {
...
Рейтинг: 0 / 0
C# async... await
    #39574520
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Petro123, сегодня, 15:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21055580][21055580]

>А где использование ридера?
Так программа и не доходит до ридера, а таймер и не начинает работать. Не в ридере дело
Я и смотрю где у тебя стоит поток выполнения. В драйвере?
ПО ШАГАМ ПРОЙДИ.Орать надо.
...
Рейтинг: 0 / 0
C# async... await
    #39574524
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Завернул бы ты всё вместе с коннектом к хренам собачьим в task.run и дело с концом.
...
Рейтинг: 0 / 0
C# async... await
    #39574525
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
На всякий случай F10 по шагам)))))
...
Рейтинг: 0 / 0
C# async... await
    #39574527
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, раньше ms к ораклу не умел дрова делать)
...
Рейтинг: 0 / 0
C# async... await
    #39574528
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Выпей смекту, от словесного обычно не помагают, но кто знает, может те помогут
...
Рейтинг: 0 / 0
C# async... await
    #39574538
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refregPetro123,

Выпей смекту, от словесного обычно не помагают, но кто знает, может те помогут
Тебя тоже можно послать.
...
Рейтинг: 0 / 0
C# async... await
    #39574600
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Код: plsql
1.
name 'java.lang.Thread.sleep( long )';


Без этой строки работает?
...
Рейтинг: 0 / 0
C# async... await
    #39574601
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>refreg, сегодня, 15:48 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21055603][21055603]
Извини, но результат отрицательный.
Поставил точку останова в обработчике событий от таймера - сюда поток не доходит
...
Рейтинг: 0 / 0
C# async... await
    #39574607
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>refreg, сегодня, 15:48 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21055603][21055603]
Извини, но результат отрицательный.
Поставил точку останова в обработчике событий от таймера - сюда поток не доходитВопрос был что выдает Debug Output?

Что за обработчик событий от таймера? Причем он здесь? Реши сначала одну проблему.
...
Рейтинг: 0 / 0
C# async... await
    #39574610
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Тебе дали кучу действий для тестов. На неделю. Спокойно решай и приходи.
Если без той строки работает, а тормозя java процесс нет, то сам себе ССЗБ.
Не умеет ридер выдавать частями с ручником на 15 сек.
Потом, ты попрятал ридер, а он должен быть в контексте и на своём месте.
...
Рейтинг: 0 / 0
C# async... await
    #39574613
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>refreg, сегодня, 18:39 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056048] [21056048]
>Вопрос был что выдает Debug Output?
>Что за обработчик событий от таймера? Причем он здесь? Реши сначала одну проблему.
Какая разница, что выдаёт Debug Output? Поток до него не доходит, пока Oracle не выполнит хранимку. Он выполняет её 15 секунд.
ПрогресБар должен показать текущее значение счетчика таймера от 1 до 15 по секундно. Этого не наблюдается. И видимо, await без run не важно, какую долгоиграющую ветку он запускает, непременно блокирует обработку сообщений от таймера .
...
Рейтинг: 0 / 0
C# async... await
    #39574614
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Ты собрался в хранимке строить временные таблички. Потом перебрасывать данные внутри базы, потом.....
И думаешь, что драйвер сразу вернет управление в код клиента?
Ты с головой дружишь?
...
Рейтинг: 0 / 0
C# async... await
    #39574618
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевКакая разница, что выдаёт Debug Output? Поток до него не доходит, пока Oracle не выполнит хранимку. Он выполняет её 15 секунд.Это есть великая тайна? Да уж... Ладно, я устал...
...
Рейтинг: 0 / 0
C# async... await
    #39574619
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 19:31 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056123][21056123]
>...Ты с головой дружишь?...
Включи мозг - таймер работает независимо (асинхронно) от драйвера.
По идее, await не должен блокировать обработку оконной очереди сообщений, иначе это task.wait.
...
Рейтинг: 0 / 0
C# async... await
    #39574625
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>refreg, сегодня, 19:38 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056140][21056140]
>Это есть великая тайна?...
1Debug = 2Debug = 1
...
Рейтинг: 0 / 0
C# async... await
    #39574628
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Petro123, сегодня, 19:31 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056123][21056123]
>...Ты с головой дружишь?...
Включи мозг - таймер работает независимо (асинхронно) от драйвера.
По идее, await не должен блокировать обработку оконной очереди сообщений, иначе это task.wait.
Кто тебе сказал?
Сдвиг окна, меню работает?
...
Рейтинг: 0 / 0
C# async... await
    #39574629
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевawait не должен блокироватьэто только ОПЕРАТОР. Он один не работает.
...
Рейтинг: 0 / 0
25 сообщений из 317, страница 10 из 13
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# async... await
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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