powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / отображение картинки пока выполняется запрос
24 сообщений из 24, страница 1 из 1
отображение картинки пока выполняется запрос
    #39167133
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.

Подскажите пожалуйста, как сделать так, что бы пока выполнялся запрос, была видна картинка (типа gif) а когда он закончится она пропала?
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39167179
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Показать картинку
2) Выполнить запрос в отдельном потоке
3) Скрыть картинку
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39167217
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

а поток отдельный занахера?
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39167232
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилShocker.Pro,

а поток отдельный занахера?

Чтоб UI не подвис, вестимо
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39167233
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisИзопропилShocker.Pro,

а поток отдельный занахера?

Чтоб UI не подвис, вестимо"асинхронное выполнение" != "в отдельном потоке"
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39167235
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КPallarisпропущено...


Чтоб UI не подвис, вестимо"асинхронное выполнение" != "в отдельном потоке"

Упс, по диагонали прочитал :)
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39167255
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

И как это сделать? А то я только начинаю разбираться. (новичек)
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39167405
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracle

Код: c#
1.
2.
3.
4.
5.
6.
async void MyWaiter()
{
  MyImage.Visible = true;
  await Task.Run(() => MyQuery(blabla));
  MyImage.Visible = false;
}

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

Изопропила поток отдельный занахера?ну, скажем, так, это общее решение для любой задачи, которая занимает время и хочется сделать индикатор выполнения. Именно запрос к БД можно выполнить и асинхронно (по сути все равно в отдельном потоке, только этот поток организовываешь не сам )))
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39167791
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proпо сути все равно в отдельном потоке, только этот поток организовываешь не самНет, разница огромна. Там происходит выполнение через IO Completion Port со всеми вытекающими преимуществами.
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168366
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот запрос который выполняется

Код: vbnet
1.
2.
3.
4.
5.
6.
 SqlCom = New OleDb.OleDbCommand("DELETE a.* FROM Inv a WHERE EXISTS (SELECT 1 FROM Inv b GROUP BY b.namess, b.dat HAVING a.namess = b.namess AND a.dat=b.dat AND a.id>MIN(b.id))", Con)
        Con.Open() ' открываем коннект к базе
        '
        SqlCom.ExecuteNonQuery() ' производим вычисления
        DA = New OleDb.OleDbDataAdapter(SqlCom) 'Через адаптер получаем результаты запроса
        DA.Fill(DT) ' Заполняем таблицу результатми


выполняется он приблизительно 1-2 минуты.
Пока он выполняется должна появиться картинка gif
PictureBox4.Visible = True
а по завершению процедуры скрыться.
Но почему то к меня PictureBox4.Visible = True срабатывает только после выполнения процедуры.
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168399
bobsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
minioracle,
После показа картинки лучше написать
application.doevents
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168450
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
minioracleНо почему то к меня PictureBox4.Visible = True срабатывает только после выполнения процедуры.
Рефреш еще надо сделать
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168473
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2minioracleНо почему то к меня PictureBox4.Visible = True срабатывает только после выполнения процедуры.
Рефреш еще надо сделать
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
PictureBox4.Visible = True
        Me.Refresh()
SqlCom = New OleDb.OleDbCommand("DELETE a.* FROM Inv a WHERE EXISTS (SELECT 1 FROM Inv b GROUP BY b.namess, b.dat HAVING a.namess = b.namess AND a.dat=b.dat AND a.id>MIN(b.id))", Con)
        Con.Open() ' открываем коннект к базе
        '
        SqlCom.ExecuteNonQuery() ' производим вычисления
        DA = New OleDb.OleDbDataAdapter(SqlCom) 'Через адаптер получаем результаты запроса
        DA.Fill(DT) ' Заполняем таблицу результатми


Но анимация у gif не начинается пока не закончится процедура!
:-(
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168486
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а то, что писали выше, вы не читали?
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168491
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prominioracle

Код: c#
1.
2.
3.
4.
5.
6.
async void MyWaiter()
{
  MyImage.Visible = true;
  await Task.Run(() => MyQuery(blabla));
  MyImage.Visible = false;
}

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

Изопропила поток отдельный занахера?ну, скажем, так, это общее решение для любой задачи, которая занимает время и хочется сделать индикатор выполнения. Именно запрос к БД можно выполнить и асинхронно (по сути все равно в отдельном потоке, только этот поток организовываешь не сам )))

Скажем так, await доступен совсем не на любой версии .NET И на некоторых компьютерах до сих пос стоит ХР, и возможности поставить "посовременнее" нет.
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168502
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addx,

Там доступны таски.
В данном случае советуют асинхронный запрос - и это правильно. У меня нет примера кода под рукой, а автору, видимо, лень погуглить "асинхронный запрос ADO.NET", проще ведь на форуме написать.
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168539
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAddx,

Там доступны таски.
В данном случае советуют асинхронный запрос - и это правильно. У меня нет примера кода под рукой, а автору, видимо, лень погуглить "асинхронный запрос ADO.NET", проще ведь на форуме написать.

Вообще-то в ХР теоретически можно воспользоваться и async, но извернуться нужно )
Просто реальна ситуация, когда у ТС код "не заработает" и он решит, что идея не правильная.
Я счел нужным это подчеркнуть.
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168584
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Читал, но я так понял это код на C# а у меня голый обычный vb net
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168591
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracle,
1. Это sql server? - используй sqlclient!
2. Используй SqlCommand.ExecuteNonQuery, адаптер тебе нужен с твоим запросом!
3. Хочешь асинхронности, используй SqlCommand.BeginExecuteNonQuery/EndExecuteNonQuery!
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39168658
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВ,

Нет access (пока что)
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39169372
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
minioracleShocker.Pro,

Читал, но я так понял это код на C# а у меня голый обычный vb net
Без разницы, главное идея
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39169897
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxИ на некоторых компьютерах до сих пос стоит ХР, и возможности поставить "посовременнее" нет.
тогда лучше выбрать другой инструмент
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39170123
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxShocker.ProAddx,

Там доступны таски.
В данном случае советуют асинхронный запрос - и это правильно. У меня нет примера кода под рукой, а автору, видимо, лень погуглить "асинхронный запрос ADO.NET", проще ведь на форуме написать.

Вообще-то в ХР теоретически можно воспользоваться и async, но извернуться нужно )
Просто реальна ситуация, когда у ТС код "не заработает" и он решит, что идея не правильная.
Я счел нужным это подчеркнуть.
Вообще-то вам говорят совсем про другое (выше был намек про IO completion ports): SqlCommand.BeginExecuteNonQuery , SqlCommand.BeginExecuteReader - они доступны начиная с FW 3.5, и на XP вполне нормально работают.
...
Рейтинг: 0 / 0
отображение картинки пока выполняется запрос
    #39170134
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracle,

BackgroundWorker
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / отображение картинки пока выполняется запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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