С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 1
Регистрация: 01.05.2012
Сообщений: 116
1

Progressbar, который увеличивается после каждого запроса, почему-то запаздывает

07.06.2012, 03:14. Показов 1525. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Код дм зелает следующее в цикле выполняются запросы к серверу, что пользователь не скучал выводиv progressbar, который увеличивается после каждого запроса, но вот по-видимому он запаздывает ....

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
        ' инициализация pb
        ProgressBar1.Minimum = 0 ' начальное значние
        ProgressBar1.Maximum = DT.Rows.Count ' максимальное значение равно выгружаемым данным
        ProgressBar1.Step = 1 ' шаг
        ProgressBar1.Value = 0
 
For Each row As DataRow In DT.Rows ' идем по массиву и выполняем запросы
 
' подготовка и отправка данных к серверу
 
 Dim postData As String = "id=" & MainForm.clinicN & "&code=" & MainForm.CPU ' Данные для POST запроса
            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
            Dim request As WebRequest = WebRequest.Create(MainForm.Server & MainForm.xmlSettings.Element("Settings").Element("script").Value) ' POST запрос
 
            With request
                .Method = "POST"
                .ContentType = "application/x-www-form-urlencoded"
                .ContentLength = byteArray.Length
            End With
 
            Dim dataStream As IO.Stream = request.GetRequestStream()
            dataStream.Write(byteArray, 0, byteArray.Length)
            dataStream.Close()
зультатами 
 ' получение данных от сервера
            Dim response As WebResponse = request.GetResponse()
            dataStream = response.GetResponseStream()
            Dim reader As New StreamReader(dataStream)
            Dim responseFromServer As String = reader.ReadToEnd()
            reader.Close()
            dataStream.Close()
            response.Close()
 
' далее что-то делаем с результатами ответа сервера
ProgressBar1.Value += 1 ' прибавляем значение к pb
 
 
 
Next
 
 
                Button1.Visible = True ' когда все выгрузилось показываем кнопку закрыть
Ситуация такая что кнопка закрыть у меня появляется гораздо раньше чем, добираетается до конца pb

Добавлено через 2 часа 48 минут
да еще странная ситуация:
VB.NET
1
' Me.ControlBox = False ' скрываем кнопку закрыть
Если вначае этот код стоит, то форма открывается сразу....(только первый раз)
потом форма все разы открывает с заподздание и прогрресс бар на середине

если эту строчку убрать, то форма все открываетя со значительным запозданием....
подскажите может неьлзя в цикле запускать запросы?
0
Programming
Эксперт
9485 / 562 / 19
Регистрация: 12.04.2006
Сообщений: 11,671
Блог
07.06.2012, 03:14
Ответы с готовыми решениями:

Запаздывает или ускоряется ProgressBar
Ребят,всем привет! Проблема в том,что я поставил прогресс бар на свой плеер,для указания прогрессии...

Почему изображение увеличивается после поворота?
есть изображение: http://itmag.es/2E5Ji помещаю его в pictureBox: http://itmag.es/23XAc выполняю...

Почему запаздывает cookie?
Пользователь вводит свои данные в форме, обработка производится в index.php. В index.php: ...

Не увеличивается ширина ProgressBar'a (Delphi XE5 разработка под Android)
Не получается увеличить ширину ПрогрессБара в Delphi XE5 при разработке под Android, однако при...

5
147 / 147 / 41
Регистрация: 01.12.2009
Сообщений: 275
07.06.2012, 19:07 2
Может быть это все в другом потоке обрабатывать, а в основном пользователя развлекать?
0
3 / 3 / 1
Регистрация: 01.05.2012
Сообщений: 116
08.06.2012, 00:13  [ТС] 3
а как это сделать?

подскажите)

Добавлено через 2 часа 33 минуты
Что совсем ни у кого нет идей?
или никто не делал сразу много запросов к серверу?

Добавлено через 2 минуты
VB.NET
1
2
3
4
        For Each row As DataRow In DT.Rows ' идем по каждому не выгруженному животному
            Dim Th As New System.Threading.Thread(AddressOf upload)
            Th.Start(row)
        Next

Попытлася сдлеать потоки .. хотя ни разу не делал
выдает ошибки ... что типа однопоточный
0
147 / 147 / 41
Регистрация: 01.12.2009
Сообщений: 275
08.06.2012, 01:26 4
Добавляем на форму BackgroundWorker,

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 Dim s As Integer
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' инициализация pb
        ProgressBar1.Minimum = 0 ' начальное значние
        ProgressBar1.Maximum = DT.Rows.Count ' максимальное значение равно выгружаемым данным
        ProgressBar1.Step = 1 ' шаг
        ProgressBar1.Value = 0
        BackgroundWorker1.WorkerReportsProgress = True
        BackgroundWorker1.WorkerSupportsCancellation = True
        If BackgroundWorker1.IsBusy <> True Then 
            'Запускаем асинхронную операцию
            BackgroundWorker1.RunWorkerAsync()
        End If
    End Sub
 
    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
        For Each row As DataRow In DT.Rows ' идем по массиву и выполняем запросы
            If (worker.CancellationPending = True) Then 'Если нажата кнопка "Отмена"
                e.Cancel = True
                Exit For
            Else
                ' подготовка и отправка данных к серверу
 
                Dim postData As String = "id=" & Mainform.clinicN & "&code=" & Mainform.CPU ' Данные для POST запроса
                Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
                Dim request As WebRequest = WebRequest.Create(Mainform.Server & Mainform.xmlSettings.Element("Settings").Element("script").Value) ' POST запрос
 
                With request
                    .Method = "POST"
                    .ContentType = "application/x-www-form-urlencoded"
                    .ContentLength = byteArray.Length
                End With
 
                Dim dataStream As IO.Stream = request.GetRequestStream()
                dataStream.Write(byteArray, 0, byteArray.Length)
                dataStream.Close()
 
                ' получение данных от сервера
                Dim response As WebResponse = request.GetResponse()
                dataStream = response.GetResponseStream()
                Dim reader As New StreamReader(dataStream)
                Dim responseFromServer As String = reader.ReadToEnd()
                reader.Close()
                dataStream.Close()
                response.Close()
                s += 1
                worker.ReportProgress(s)
            End If
        Next
    End Sub
 
    Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
        ProgressBar1.Value = (e.ProgressPercentage) ' изменяем значение pb
    End Sub
 
    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
        Button1.Visible = True ' когда все выгрузилось показываем кнопку закрыть
    End Sub
 
    Private Sub Отмена_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Отмена.Click
        If BackgroundWorker1.WorkerSupportsCancellation = True Then
            'Отмена асинхронной операции
            BackgroundWorker1.CancelAsync()
        End If
    End Sub
0
3 / 3 / 1
Регистрация: 01.05.2012
Сообщений: 116
08.06.2012, 02:41  [ТС] 5
Ругается (((

Ошибка при создании формы. См. Exception.InnerException. Ошибка: Создание экземпляра элемента управления ActiveX '8856f961-340a-11d0-a96b-00c04fd705a2' невозможно: текущий поток не находится в однопоточном контейнере.

на эту строку:
VB.NET
1
 Dim postData As String = "id=" & MainForm.clinicN & "&code=" & MainForm.CPU & "&chip=" & row.Item("chip") & "&mark=" & row.Item("mark") & "&nick=" & row.Item("nick") & "&kind=" & row.Item("kind") & "&breed=" & row.Item("breed") & "&sex=" & row.Item("sex") & "&birthday=" & row.Item("birthday") & "&color=" & row.Item("color") & "&desc=" & row.Item("desc") & "&o_name=" & row.Item("o_name") & "&o_address=" & row.Item("o_address") & "&o_passport=" & row.Item("o_passport") & "&o_email=" & row.Item("o_email") & "&o_phone=" & row.Item("o_phone") & "&o_desc=" & row.Item("o_desc") & "&o_before=" & row.Item("o_before") & "&date_local=" & row.Item("date_local") ' Данные для POST запроса
0
3 / 3 / 1
Регистрация: 01.05.2012
Сообщений: 116
08.06.2012, 03:27  [ТС] 6
Пробовал по мануалу идет, вставляю свой зпрос сразу ошибка((
Миниатюры
Progressbar, который увеличивается после каждого запроса, почему-то запаздывает  
0
08.06.2012, 03:27
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
08.06.2012, 03:27
Помогаю со студенческими работами здесь

Макрос который для каждого значение в ячейке до и после добавляет текст
Макрос который для каждого значение в ячейке до и после добавляет текст Файл с примером прикрепил

Для каждого запроса типа "-" программа должна вывести номер гоблина, который должен зайти к шаманам
Гоблины Мглистых гор очень любях ходить к своим шаманам. Так как гоблинов много, к шаманам часто...

Вставить после каждого элемента очереди, который содержит заданную цифру, элемент x
Здравствуйте, у меня есть задача, нужно в очередь вставить после каждого элемента, который...

Widht, который увеличивается по таймеру
Как сделать widht, который увеличивается по таймеру ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Блоги программистов
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­хронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru