Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 16
1

Не запускается .DoWork

05.07.2012, 12:33. Показов 939. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добры день всем. снова прошу помощи у коллективного разума
прикрутил к проге BackgroundWorker, вроде студия ни на что не ругается
запускаю, а программа не хочет после строчки search.RunWorkerAsync() выполнять то, что находится в процедуре POISK, а просто перескакивает к DL. что где нужно дописать.

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
...
...
 
Public Class Form1
...
Dim URLList, DLList As ArrayList
Dim matches As MatchCollection
Dim WithEvents search As New BackgroundWorker
...
 
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
 
search.RunWorkerAsync()
 
DL()
 
End Sub
 
'конструктор ссылок
Private Sub URLConstructor()
Dim Url as string
' j - количество страниц
for i as integer =1 to j
Url=a+b+c
URLList.Add(URL)
next
 
End Sub
 
 
'скачивание html кода
Private Sub GetHTML()
...
End Sub
 
'cкачивание файлов
Private Sub DL()
...
End Sub
 
 
Public Sub POISK(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles search.DoWork
DLList.Clear()
URLList.Clear()
URLContruction()
For i As Integer = 0 To URLList.Count - 1
GetHTML(URLList.Item(i))
RegexHTML()
Next
End Sub
 
 
'поиск совпадений в html коде
Private Sub RegHTML()
Dim pattern As String = "blabla"
Dim newReg As New Regex(pattern)
Dim matches As MatchCollection = newReg.Matches(HTML)
For i As Integer = 0 To matches.Count - 1
DLList.Add(matches.Item(i))
Next
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2012, 12:33
Ответы с готовыми решениями:

Backgroundworker RunWorkerCompleted обработка ошибки в DoWork
Есть код: Private Sub bgUsers_DoWork(sender As Object, e As...

Не срабатывает backgroundWorker1.RunWorkerAsync(); Не запускается DoWork
..... backgroundWorker4.RunWorkerAsync(); break; ..... В отладке после запуска...

Объясните строку с подпиской на событие DoWork
Недавно, читая статью о создании некой программы на C#, нашел очень интересный и работающий код. В...

Как правильно распараллелить выполнение DoWork, чтобы не было взаимоисключающих ситуаций
Так вот, пишу клиент-серверную вещь, что-то вроде переборщика паролей. Количество потоков для...

10
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
05.07.2012, 15:41 2
А где указано, что нужно запускать?
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 16
05.07.2012, 17:16  [ТС] 3
Без понятия, для этого и создал тему.
Делал по примеру
думал что после search.RunWorkerAsync() запустится POISK() по Handles search.DoWork
0
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
05.07.2012, 18:23 4
alexs43, ну не зря же есть в среде разработке возможность красные точки над нужными строчками, проверьте и увидите, что ваш Poisk должен, по идее, работать. Но так как режим запуска background Async, то он запускается, а потом сразу же переходит к следующей строчке, а точнее к процедуре DL
1
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 16
05.07.2012, 18:37  [ТС] 5
понял, а можно как-то режим изменить на Sync, или сделать так чтоб главный поток дожидался выполнения backgroundworker'a? если можно с примером
0
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
05.07.2012, 19:14 6
VB.NET
1
2
3
4
5
6
7
8
9
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
 
search.RunWorkerAsync()
While BackgroundWorker1.IsBusy
        Application.DoEvents()
End While
DL()
 
End Sub
примерно так, проверять не хочу. если будет работать - отпишись.
1
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 16
05.07.2012, 19:24  [ТС] 7
работает вроде )
VB.NET
1
2
3
While search.IsBusy
Application.DoEvents()
End While
спасибо дружище. очень помог
0
7 / 7 / 0
Регистрация: 04.07.2012
Сообщений: 20
05.07.2012, 19:54 8
Можно вопрос? зачем тебе нужен backgroundworker, предназначенный как раз для выполнения асинхронных действий, для последовательного выполнения? Кто мешает вместо
VB.NET
1
2
3
While search.IsBusy
Application.DoEvents()
End While
просто написать
VB.NET
1
POISK()
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 16
05.07.2012, 19:55  [ТС] 9
при использовании POISK() в главном потоке зависает UI
0
7 / 7 / 0
Регистрация: 04.07.2012
Сообщений: 20
05.07.2012, 19:56 10
понятно, долго выполняется что ли?
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 16
05.07.2012, 20:01  [ТС] 11
да, происходит скачивание html кода множества страниц, ну а там уже много факторов влияющих на скорость выполнения
0
05.07.2012, 20:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2012, 20:01
Помогаю со студенческими работами здесь

Не запускается regedit, ccleaner, avz. При старте запускается сайт zivlingamer
Собственно лог через тестовую версию.

Новый компьютер запускается не сразу (через 2 секунды выключается и запускается нормально).
собрал системный блок, все подключено, все работает прекрасно, но вот есть одна непонятная...

Не запускается regedit, ccleaner, avz, автоматически запускается сайт zivlingamer
Вирус не дает запустить программы автологгера, поэтому запускал каждую по одельности, переименовав....

При нажатии кнопки пуск ПК запускается и тут же выключается, после этого он запускается сам
При нажатии кнопки пуск ПК запускается и тут же выключается, после этого через пару секунд он...

При включении ПК, компьютер запускается и сразу выключается, потом опять запускается, и работает нормально
Доброго времени суток уважаемы посетители форума, у меня такая проблема(я в компьютерах не...

Не запускается компьютер с моей видео картой, а с другой запускается
Вчера приобрел r9 270x, но система не запускается с этой видеокартой, кулера крутятся тут же...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru