Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / отображение картинки пока выполняется запрос / 24 сообщений из 24, страница 1 из 1
09.02.2016, 21:32
    #39167133
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение картинки пока выполняется запрос
Доброе время суток.

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

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

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

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

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

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


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

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

И как это сделать? А то я только начинаю разбираться. (новичек)
...
Рейтинг: 0 / 0
10.02.2016, 11:43
    #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
10.02.2016, 16:43
    #39167791
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение картинки пока выполняется запрос
Shocker.Proпо сути все равно в отдельном потоке, только этот поток организовываешь не самНет, разница огромна. Там происходит выполнение через IO Completion Port со всеми вытекающими преимуществами.
...
Рейтинг: 0 / 0
11.02.2016, 11:32
    #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
11.02.2016, 12:02
    #39168399
bobsoft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение картинки пока выполняется запрос
minioracle,
После показа картинки лучше написать
application.doevents
...
Рейтинг: 0 / 0
11.02.2016, 12:37
    #39168450
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение картинки пока выполняется запрос
minioracleНо почему то к меня PictureBox4.Visible = True срабатывает только после выполнения процедуры.
Рефреш еще надо сделать
...
Рейтинг: 0 / 0
11.02.2016, 12:59
    #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
11.02.2016, 13:06
    #39168486
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение картинки пока выполняется запрос
а то, что писали выше, вы не читали?
...
Рейтинг: 0 / 0
11.02.2016, 13:12
    #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
11.02.2016, 13:20
    #39168502
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение картинки пока выполняется запрос
Addx,

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

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

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

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

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

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

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

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

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


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