powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Многопоточность?
6 сообщений из 6, страница 1 из 1
Многопоточность?
    #35721836
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! Проблемма в том, что при событии таймера формы, до зовершения выполнения ничего не происходит, т. к. единственный процесс занят... Этого можно избежать? И как если да...
...
Рейтинг: 0 / 0
Многопоточность?
    #35722007
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Grayscale
> Добрый день! Проблемма в том, что при событии таймера формы, до зовершения выполнения ничего не происходит, т. к.
> единственный процесс занят... Этого можно избежать? И как если да...


А для чего ты хочешь его освободить с помощью DoEvents?

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многопоточность?
    #35722882
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня на форме есть контролы, при этом по mouseMove происходит тоже разная беда, а событие таймера, предназначенное для запуска процесса единожды после отрисовки формы (load не годится) длится около минуты.
Форма - статус бар для нагруженного процесса. А вот прервать процесс неполучается т. к. интервалы когда управление возвращается к форме слижком редки... Только и годяться чтоб квадратик намалевать...
...
Рейтинг: 0 / 0
Многопоточность?
    #35722890
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он не упоминал DoEvents. Он хотел решить проблемму ммногопоточности.

Grayscale, посммотри решение проблеммы ммногопоточности здесь:

http://www.tek-tips.com/viewthread.cfm?qid=519374
...
Рейтинг: 0 / 0
Многопоточность?
    #35723038
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Grayscale
> У меня на форме есть контролы, при этом по mouseMove происходит тоже разная беда, а событие таймера,
> предназначенное для запуска процесса единожды после отрисовки формы (load не годится) длится около минуты.
> Форма - статус бар для нагруженного процесса. А вот прервать процесс неполучается т. к. интервалы когда
> управление возвращается к форме слижком редки... Только и годяться чтоб квадратик намалевать...

Ну так и что мешает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Command1_Click()
Dim i As Long, j As Long
With Me.ProgressBar1
    .Min =  1 
    .Max =  10000 
    .Value = .Min
End With
For i =  1  To  1000000 
    For j =  1  To  10 
        Debug.Print j + i - i *  1 
    Next j
    If (Not i Mod  100 ) = True Then
        With Me.ProgressBar1
            .Value = .Value +  1 
            .Refresh
        End With
        DoEvents
    End If
Next i
End Sub


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многопоточность?
    #35723213
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо))) Многопоточность похоже то...
Doevents не подойдет потому что перепихивать класс в форму не годится...
Код: plaintext
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.
Option Explicit
Private WithEvents rpt As LclsReport
Private cancelClicked As Boolean

Private Sub Form_Load()
    Me.Timer.Interval =  1000 
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Me.Visible Then
        Me.Hide
        Cancel = True
    End If
End Sub

Private Sub rpt_stepInfo(cam As Long, tpe As String, step As Long)
Dim s As String
    Select Case cam
        Case  0 
            s = "сводный раздел"
        Case  1 
            If UCase(tpe) = "F" Then
                s = "камера 1 фронтальные стелажи"
            Else
                s = "камера 1 набивные стелажи"
            End If
        Case  2 ,  3 ,  4 ,  5 
            s = "камера " & cam
    End Select
    Me.Refresh
    Me.lblText.caption = "Обрабатывается " & s
    Me.prbMain.Value = Me.prbMain.Value +  5 
End Sub

Private Sub Timer_Timer()
    Me.Timer.Interval =  0 
    Set rpt = New LclsReport
    rpt.create
    Set rpt = Nothing
    Me.Hide
    Unload Me
End Sub
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Многопоточность?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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