Re: threading.timer
От: Аноним  
Дата: 20.11.07 09:08
Оценка:
Здравствуйте, DsergN, Вы писали:

DN>Здравствуйте!

DN>Подскажите пожалуйста, есть
DN>таймер

DN>
DN>mVarTimer = New Threading.Timer(AddressOf WorkTime, Me, 0, 1000)
DN>

DN>вызывает
DN>
DN>Public Sub WorkTime(ByVal StateObj As Object)
DN>        Dim State As Tim = CType(StateObj, Tim)
DN>        Dim tmpVarSec As Integer
DN>        System.Threading.Interlocked.Increment(State.CurrentTime)
DN>        tmpVarSec = System.Threading.Interlocked.Read(State.CurrentTime)
DN>        If tmpVarSec > State.mvarTimeWorkMax Then    
DN>            State.mVarTimer.Dispose()
DN>            System.Threading.Interlocked.Exchange(State.TimerWork, 0)
DN>            RaiseEvent TimerIncrementSecunda(tmpVarSec, True)
DN>        Else
DN>            RaiseEvent TimerIncrementSecunda(tmpVarSec, False)
DN>        End If
DN>    End Sub
DN>



DN>главная программа

DN>
DN> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DN>        AddHandler My.Application.tmpV.TimerIncrementSecunda, AddressOf TimerEvent
DN>    End Sub
DN>    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DN>        My.Application.tmpV.startTimer()
DN>    End Sub
DN>    Private Sub TimerEvent(ByVal curtime As Integer, ByVal stopTimer As Boolean)
DN>        Label1.Text = curtime           '-здесь ошибка.обращение к данным созданным в другом потоке
DN>    End Sub

DN>


DN>Каким образом мне сделать так что поток вызываемый таймером мог видеть данные потока главной формы в частности

DN>
DN>my.application.[......]
DN>

DN>???
Доброго !
Через делегата
С уважением !
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.