Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с изучамым примером 
:(
    Опции темы
shoblin86
Дата 11.2.2011, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 9.2.2011

Репутация: нет
Всего: нет



во время изучения одной книги, я решил разобраться в коде примера. До этого я не сталкивался с конструкцией:
 AddHandler tim1.Elapsed, AddressOf OnTimerEvent
Код

Dim tim1 As New System.Timers.Timer
 
Private Sub frmText_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler tim1.Elapsed, AddressOf OnTimerEvent
        tim1.Interval = 100
        tim1.Enabled = True
End Sub
..................


ошибка вознекает на OnTimerEvent - пишет name OnTimerEvent not declared
Как OnTimerEvent обьявлять и где?
PM MAIL   Вверх
diadiavova
Дата 11.2.2011, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Цитата(shoblin86 @  11.2.2011,  23:12 Найти цитируемый пост)
Как OnTimerEvent обьявлять и где? 

Это должен быть обработчик события Elapsed таймера.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
shoblin86
Дата 11.2.2011, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 9.2.2011

Репутация: нет
Всего: нет



Код

Private Sub OnTimerEvent(ByVal source As System.Object, ByVal e As System.Timers.ElapsedEventArgs)       
        Dim t As String
        t = Microsoft.VisualBasic.Left(title, a)
        MyClass.Text = t
-------------------------------------
End Sub

и все пошло но теперь другая проблема MyClass.Text = t -выдает ошибку "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "frmText" не из того потока, в котором он был создан."

Это сообщение отредактировал(а) shoblin86 - 12.2.2011, 09:46
PM MAIL   Вверх
shoblin86
Дата 13.2.2011, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 9.2.2011

Репутация: нет
Всего: нет



Нашел в интернете такое решение MyClass.Invoke(New Action(Of String)(AddressOf TextUpdate), a.ToString), вот оно как все вместе написано:
Код

Private Sub frmText_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler tim1.Elapsed, AddressOf OnTimerEvent
        tim1.Interval = 100
        tim1.Enabled = True
        CheckAgain()

    End Sub
    Private Sub OnTimerEvent(ByVal source As System.Object, ByVal e As System.Timers.ElapsedEventArgs)
        Dim t As String
        t = Microsoft.VisualBasic.Left(title, a)
        MyClass.Invoke(New Action(Of String)(AddressOf TextBox1Update), a.ToString)
        a += 1
        If a > c Then
            a = 0
            tim1.Enabled = False
            tim2.Enabled = True
            b = 0
        End If
    End Sub
   
    Sub CheckAgain()
        c = Len(title)
        a = 0
        b = 0

    End Sub
    Sub TextUpdate(ByVal Value As String)
        MyClass.Text = Value
    End Sub



Подскажите только где можно нормально про эти потоки прочитать и узнать побольшо о MyClass.Invoke(New Action(Of String)(AddressOf TextBox1Update), a.ToString), очень уж непонятная конструкция
PM MAIL   Вверх
diadiavova
Дата 13.2.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Может быть отсюда начать?
http://msdn.microsoft.com/ru-ru/library/sy...rol.invoke.aspx


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.3068 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.