Подписка на события в VB.NET

Я пытаюсь преобразовать код C # в VB.NET.

У меня есть следующее в C # (который работает)

m_switchImageTimer = new DispatcherTimer();
m_switchImageTimer.Interval = Interval;
m_switchImageTimer.Tick += (s, e) => LoadNextImage();

Ключевая линия, которую я пытаюсь успешно конвертировать:

m_switchImageTimer.Tick += (s, e) => LoadNextImage();

То, что я пытался:

m_switchImageTimer.Tick += Function(s, e) LoadNextImage()
m_switchImageTimer.Tick += New EventHandler(AddressOf LoadNextImage)

Ни один из них не работает.

Первая попытка приводит к двум ошибкам, первая VS2010 выделяется в поле m_switchImageTimer.Tick:

Error 1 'Public Event Tick (sender As Object, e As System.EventArgs)' является событием и не может быть вызвана напрямую. Используйте инструкцию RaureEvent, чтобы вызвать событие

, и подсвеченное в LoadNextImage () приводит к следующей ошибке:

Выражение ошибки 3 не создает значение.

Вторая попытка приводит к той же ошибке:

Ошибка 1 'Public Event Tick (sender As Object, e As System.EventArgs)' является событием и не может быть вызвана напрямую. Для создания события используйте инструкцию RaureEvent.

Как преобразовать код C # в VB.NET?

Спасибо Ben

-121--1577427- Обновит ли синхронизация Java полный кэш или только объект, на котором я синхронизирован? Если я обращаюсь к объекту внутри синхронизированного метода или синхронизированного блока, все ли объекты в этом элементе также синхронизированы? Представьте, что объект Queue имеет синхронизированную функцию add ()...

Если я получаю доступ к объекту внутри синхронизированного метода или синхронизированного блока, все ли объекты в этом доступном элементе также синхронизированы?

Представьте, что существует объект Queue с синхронизированным методом add () и take () , принимающий и раздающий сложный объект Thing . Вещь содержит множество списков с другими различными объектами.

Теперь поток изображений Прежде чем создаст вещь и поместит некоторые существующие объекты в вещь , изменит некоторые из этих объектов и т. д. Поток Перед добавляет Вещь в Очередь . Более поздний поток После берет Thing из Queue .

ВОПРОС: Будет ли вещь и все ее потомки/подобъекты находиться в том же состоянии, что и Прежде чем оставит их? Даже если поток После работал над одним из этих подэлементов немного раньше? Потому что я изображаю процессор для потока После может все еще иметь некоторые кэшированные сведения об этом субэлементе (адрес этого подобъекта все тот же). Все эти кэшированные вещи будут признаны недействительными только через доступ к объекту-отцу Вещь синхронизированным способом?

Пожалуйста, не давать ответы, как использовать параллельные libs и т.д. Я хочу понять, что происходит.

10
задан Paŭlo Ebermann 28 August 2011 в 11:20
поделиться