powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# async... await
25 сообщений из 317, страница 12 из 13
C# async... await
    #39574691
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123,сегодня, 21:09 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056334][21056334]
>... Тормозит-морозится интерфейс? ...
Большое спасибо за вопрос - я в шоке и плакать, я туповат оказался - интерфейс морозится, причем, если уйду в окно другого приложения, назад вернуться не получается, пока работает асинхронный метод.
Может быть дело в том, что работаю в виртуалке?
...
Рейтинг: 0 / 0
C# async... await
    #39574692
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosДа я еще хуже считаю - я считаю NP полную задачу построения оптимального расписания.

Почему ты не делаешь этого там, где это делать удобнее всего: на сервере, с кешированием и всеми делами? Там же максимально быстрый канал с БД, без накладок, без задержек, если это вообще не делать в самой БД.


ViPRosНадо явно что бы можно было назначить поток для обслуживания задач ввода/вывода.

зачем?

ViPRosда, блин, синхронизация все равно нужна, есть неразделяемые объекты. В ДатаТейбл, допустим, фиг два потока запишут одновременно.

ну да, пока один пишет, другие будут вынуждены ждать и продолжать пожирать удерживать поток и пожирать ресурсы. это мы ещё не затрагиваем тему GC, который может заблочить твои потоки..


ViPRosА вот если сделан был бы внутри ТПЛ автоматически не плодить потоки, если какой то поток ушел в I|O то было бы хорошо, но нифига такого нету.

почему это нет? есть.. просто как только ты введёшь асинки, придётся переходить на семафоры для синхронизации потоков.
...
Рейтинг: 0 / 0
C# async... await
    #39574697
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Petro123,сегодня, 21:09 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056334][21056334]
>... Тормозит-морозится интерфейс? ...
Большое спасибо за вопрос - я в шоке и плакать, я туповат оказался - интерфейс морозится, причем, если уйду в окно другого приложения, назад вернуться не получается, пока работает асинхронный метод.
Может быть дело в том, что работаю в виртуалке?
Ну, я так и думал, раз таймер не работает.
Ты наверно ни разу не видел как часы компа не тикают когда зип файл зипуешь).
...
Вопросы то остались - БЕЗ СТРОКИ ЗАМОРОЗКИ JAVA В БД - РАБОТАЕТ?
...
Рейтинг: 0 / 0
C# async... await
    #39574701
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosДа я еще хуже считаю - я считаю NP полную задачу построения оптимального расписания.

Почему ты не делаешь этого там, где это делать удобнее всего: на сервере, с кешированием и всеми делами? Там же максимально быстрый канал с БД, без накладок, без задержек, если это вообще не делать в самой БД.


Первым делом так и было сделано - на сервере через CLR.
Но, сервер не пригоден для вычислений, тем более - графовых.
Сделал на сервере через CLR, получился однопоточная фигня медленная.

А тут тоже нет никаких накладок, задержек, а кешировать можно везде.
Ну, вощем, у меня нет проблем для обсуждения пока по части расчетов (в свое время - лет 7 назад были и я обращался по части оптимизации СКЛ запросов и люди помогали).
Быстрее и лучше меня никто пока что не считает из конкурентов.
...
Рейтинг: 0 / 0
C# async... await
    #39574702
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

- на сервере через хранимки -
...
Рейтинг: 0 / 0
C# async... await
    #39574706
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 22:01 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056461][21056461]
>...Вопросы то остались...
У меня база данных отладочного комплекса на другой виртуалке.
На ней нет данных для долгоиграющего запроса. Приходится использовать java.
Но для await Task.Run всё работает и в случае задержки.
...
Рейтинг: 0 / 0
C# async... await
    #39574710
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Petro123, сегодня, 22:01 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056461][21056461]
>...Вопросы то остались...
У меня база данных отладочного комплекса на другой виртуалке.
На ней нет данных для долгоиграющего запроса. Приходится использовать java.
Но для await Task.Run всё работает и в случае задержки.
У тебя удивительная способность не отвечать на вопрос.
Не только мне, но и например, refreg допросился логи со второго раза.
...
Дак работает без той строки?
...
Рейтинг: 0 / 0
C# async... await
    #39574711
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
объясняю сразу в надцатый раз.
Я думаю что нельзя тестировать асинхронность ДРАЙВЕРА таким методом как у тебя.
Выше писал что генерация данных в оракле это одно sql выражение.
Если не знаешь как - спроси.
...
Рейтинг: 0 / 0
C# async... await
    #39574716
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 22:44 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056587][21056587]
>...Дак работает без той строки?
Странный вопрос, а что именно работает? - если таймер, то нет
...
Рейтинг: 0 / 0
C# async... await
    #39574718
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевСтранный вопрос, а что именно работает? - если таймер, то нет
я это и спрашивал.
Т.е. есть та строка или нет - таймер не работает в обоих случаях.
Второй вопрос - выше ссылку на код Алексея видел?
Дело твоё, но можешь проверить его код.
Если не работает, то у тебя нет вариантов - мой вариант из моего проекта или твой await-вариант.
Логично?
...
Рейтинг: 0 / 0
C# async... await
    #39574719
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 22:57 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056621][21056621]
>...Я думаю что нельзя тестировать асинхронность ДРАЙВЕРА таким методом как у тебя.
Причем здесь ДРАЙВЕР - я задерживаю выполнение хранимки.
Да и какая нахрен разница - можно запустить любой асинхронный метод без применения await Task.Run - метод таймера не работает, как не работает любой другой метод обработки сообщения, за исключением асинхронного.
...
Рейтинг: 0 / 0
C# async... await
    #39574721
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевПричем здесь ДРАЙВЕР - я задерживаю выполнение хранимки.
уже ни при чём. Ты долго отвечаешь на вопросы.
...
Рейтинг: 0 / 0
C# async... await
    #39574726
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
Ну а если поболтать, только ты не отвлекайся)), то БД строит план выполнения запроса, потом подымает кэш.
Если ты тормознул процесс, то он не даст на клиента ничего как раз эти 15 сек.
Но ты не отвлекайся).
...
Рейтинг: 0 / 0
C# async... await
    #39574728
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 23:16 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056663][21056663]
>...Логично? ...
Логично.
Можно использовать Task.Wait(TimeSpan), но лишняя возня.
...
Рейтинг: 0 / 0
C# async... await
    #39574729
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 23:25 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056684] [21056684]
>...Если ты тормознул процесс, то он не даст на клиента ничего как раз эти 15 сек...
Так это мне и надо - ПрогресБар покажет полоску в 15 секунд - время выполнения хранимки
...
Рейтинг: 0 / 0
C# async... await
    #39574731
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевМожно использовать Task.Wait
только не приставай ко мне с этим старьём)). Я сразу на новое прыгнул).
...
ВМоисеевТак это мне и надо - ПрогресБар покажет полоску в 15 секунд - время выполнения хранимки
какой ты тупой!
15 сек не возвращается код в клиента от БД т.к. там стоит sleep()
Код ушёл в драйвер и БД. Ни разу не видел?
Сделай код от Алексея.
...
Рейтинг: 0 / 0
C# async... await
    #39574739
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 23:38 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056703] [21056703]
>...какой ты тупой!
Ну какой же ты тупой. Счет секундам(времени) ведет таймер приложения и его счетчик показывает ПрогресБар. Каждую секунду полоска увеличивается. Для этих целей мне по барабану, что хранимка пока не отвечает, как ответит - остановлю таймер, скрою ПрогресБар и начну обработку списка сущностей.
...
Рейтинг: 0 / 0
C# async... await
    #39574740
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевмне по барабану, что хранимка пока не отвечает,
сделай dll c кодом sleep() или циклом for 0 - 100000
И запусти из exe шника.
Будет таймер показывать на экране?
...
Рейтинг: 0 / 0
C# async... await
    #39574741
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 Сделай код от Алексея.
и не OFFTOP про теорию потоков
...
Рейтинг: 0 / 0
C# async... await
    #39574742
SirYouGin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Oracle для задержки есть родной DBMS_LOCK.SLEEP(seconds IN NUMBER).
ВМоисеев>ВМоисеев, сегодня, 18:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21053225][21053225]
Раньше не мог аккуратно тестировать хранимую процедуру Oracle - не знал как реализовать задержку.
Спасибо коллеге за процедуру:
-- Задержка
Код: plsql
1.
2.
3.
 procedure my_sleep( p_sleep in number )
 as language java
 name 'java.lang.Thread.sleep( long )';


Теперь могу тестировать и так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 -- Выборка из таблицы Strani_Puskov с параметрами
 procedure Strani_Puskov_Sql(
   cur_viborka out t_cursor
   ,x_Strana_Puska in varchar2
 )
 as
  sql_sel varchar2(2000) := '
  SELECT pk_Strana_Puska,nv,Strana_Puska,sk
  FROM tbl_Strani_Puskov
  WHERE (pk_Strana_Puska<>0)';
  sel1 varchar2(50) := ' AND Strana_Puska LIKE' || '''' || x_Strana_Puska || '''';

 begin
  if(x_Strana_Puska is not null) then
   sql_sel := sql_sel || sel1;
  end if;

  sql_sel := sql_sel || ' ORDER BY SK,Strana_Puska';

  -- Тест
  [color=red]my_sleep(9000);[/color]

  open cur_viborka for sql_sel;
 end Strani_Puskov_Sql;
...
Рейтинг: 0 / 0
C# async... await
    #39574744
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 00:00 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1280515&msg=21056756] [21056756]
>...Будет таймер показывать на экране?
Твой пример не связан с вводом/выводом
...
Рейтинг: 0 / 0
C# async... await
    #39574745
SirYouGin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй поменять методы в wsp так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public static Task Entity_SP(string spname, dlg_sp sp, OracleParameter[] asp, dlg_RowToEntity RowToEntity) {
           return Task.Run(()=>Entity_SP_sync(spname, sp, asp, RowToEntity));
    }
    //-- Выполнение хранимой процедуры
    public static void Entity_SP_sync(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.ExecuteReader()) {
          //-- Формируем коллекцию из выборки
          sp(RowToEntity); //-- Обратный вызов
        }
      }
    }



Вызов прежний:
Код: c#
1.
await wsp.Entity_SP(ИмяХП, sp, asp, RowToEntity);


Таймер должен заработать.
ВМоисеевКоллеги, помогите разобраться.
Разрабатываю приложения работы с базой данных Oracle.
Запросы могут быть долгоиграющими, поэтому на время его выполнения подключаю таймер и отражаю время в прогресс баре.
- Ситуация 1: здесь и далее - await wsp.Entity_SP(ИмяХП, sp, asp, RowToEntity);- вызов хранимой процедуры
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
      . . .
      при.tmrStart(); //-- Пуск таймера 
      try { await wsp.Entity_SP(ИмяХП, sp, asp, RowToEntity); }
      catch (System.InvalidOperationException ex) { throw new Exception(ex.Message); }
      catch (Exception ex) {
        при.tmrStop();
        MessageBox.Show(ex.Message, caption_Entity, MessageBoxButton.OK);
        bl_Разрешение = true;     //-- Разрешение выполнения функционала компонент
        return;
      }
      при.tmrStop();  //-- Останов таймера
      . . .

======= ПрогрессБар не работает.

- Ситуация 2:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
      . . .
      при.tmrStart(); //-- Пуск таймера 
      await Task.Run(() => wsp.Entity_SP(ИмяХП, sp, asp, RowToEntity));
      if (wsp.wspErr != null) {
        при.tmrStop();
        MessageBox.Show(wsp.wspErr, caption_Entity, MessageBoxButton.OK);
        bl_Разрешение = true;     //-- Разрешение выполнения функционала компонент
        return;
      }
      при.tmrStop();
      . . .

======= ПрогрессБар штатно.

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

>...Будет таймер показывать на экране?
Ваш вопрос возбудил смутные подозрения, а асинхронны ли асинхронные методы девартовского дравера. Попробую подергать асинхронные методы SQL Server- а
...
Рейтинг: 0 / 0
C# async... await
    #39574786
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SirYouGinПопробуй поменять методы в wsp так:
То что task.run работает, он знает с 1 страницы. Он так не хочет.

2.Не цитируй много текста.
...
Рейтинг: 0 / 0
C# async... await
    #39574787
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевПопробую подергать асинхронные методы SQL Server- адавно пора. Приходи через полгода как в прошлый раз.
...
Рейтинг: 0 / 0
25 сообщений из 317, страница 12 из 13
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# async... await
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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