Visual Basic:

Среда программирования Visual Basic

Многопоточные приложения

  • Знакомство с многопоточностью
  • Домены приложений
  • Создание потоков
  • Метод Join
  • Имена потоков, CurrentThread и ThreadState
  • Приостановка потока
  • Завершение или прерывание программных потоков
  • Приостановка и уничтожение потоков
  • Более серьезный пример: извлечение данных из кода HTML
  • Главная опасность (общие данные)
  • Решение проблемы: синхронизация
  • Команда SyncLock и класс Monitor
  • Взаимная блокировка

 

Версии Visual Basic

Первые две версии Visual Basic для Windows хорошо подходили для создания прототипов программ и демонстрационных приложений — но этим все и ограничивалось. В обеих версиях отличная среда программирования сочеталась с относительной простотой языка. Сам язык обладал относительно бедными возможностями. С появлением VB3 и новых средств работы с базами данных, требовавших изучения новой модели программирования, первая реакция нередко была обескураживающей: «Зачем они испортили VB?!» Сейчас становится понятно, что включение поддержки баз данных в VB3 было необходимо, чтобы Visual Basic из «игрушечного языка» превратился в серьезный инструмент программирования. В VB4 появились базовые возможности для создания объектов, а следовательно — базовые средства объектно-ориентированного программирования. В VB5 и VB6 объектно-ориентированные аспекты языка были расширены, появились новые возможности создания элементов и использования интерфейсов. Однако сам язык постепенно утрачивал целостность, поскольку объектно-ориентированные средства строились на базовом фундаменте, в котором их поддержка не предусматривалась. Например, правильность создания объектов в Visual Basic не гарантировалась — программисту приходилось применять особые синтаксические конструкции вместо конструкторов, используемых практически во всех объектно-ориентированных языках (конструкторы рассматриваются в главе 4). В итоге разработчики VB пришли к выводу, что поддержка VB на платформе .NET потребует новых изменений — например, использование .NET Framework требует полноценной объектной ориентации языка.

Вероятно, при знакомстве с изменениями VB основные трудности возникнут не в связи с новшествами в среде IDE или появлением новых ключевых слов, а из-за необходимости радикального пересмотра парадигмы программирования на VB. В частности, чтобы в полной мере использовать преимущества VB5 и VB6, с объектно-базированного подхода, обладавшего весьма ограниченными возможностями создания новых объектов, приходилось переходить на объектно-ориентированный подход, в инструментарии которого, например, важное место занимают интерфейсы. К сожалению, большинство программистов VB, выросших на этом продукте, ранее никогда не использовали принципы объектно-ориентированного программирования. Когда в VB впервые появились классы, многие программисты VB понятия не имели, что это такое и зачем они нужны.

Но даже эти ограниченные возможности, появившиеся в VB5 и VB6, при правильном применении упрощали работу над большими проектами. Например, они позволяли создавать компоненты многократного использования (такие, как элементы управления), а на более прозаическом уровне — просто приводить код в порядок, упрощая его сопровождение. В некоторых случаях удавалось исключить оператор Sel ect Case, нередко порождавший большие проблемы с сопровождением. Речь идет о конструкциях, более или менее похожих на следующие: [ В поставку VB .NET входит утилита преобразования программ, но не стоит возлагать на нее чрезмерные надежды. Ни одна серьезная программа не преобразуется автоматически — возможно, ее будет проще написать с нуля. ]

Select Case kindOfEmployee

Case Secretary

RaiseSalary 5%

Case Manager

RaiseSalary 10%

Case Programmer

RaiseSalary 15%

Case Architect

RaiseSalary 20 %

 

' и т. д.

End Select

Сопровождение подобного кода было делом крайне неприятным, поскольку при каждом добавлении нового типа сотрудника (Employee) приходилось изменять все соответствующие операторы Select Case, тогда как эту работу можно было бы поручить компилятору. Начиная с VB5 это наконец стало возможным, поскольку волшебство полиморфизма интерфейсов (см. главу 5) позволяло использовать конструкции вида:

For Each employee in Employees

employee.RaiseSalary

Next

Компилятор анализировал объект и автоматически выбирал нужный метод Rai seSal ary. "Классы заметно повышают эффективность и удобство сопровождения приложений VB. Останетесь ли вы с VB5 или перейдете на VB .NET — без классов трудно представить себе серьезное приложение VB.

;
Эвакуатор от 1500 рублей! 24ч: эвакуатор москва . Эвакуация 24 часа от 1600р.Атомные станции с реакторами РБМК 1000 Преобразование энергии на АЭС Конструкция реактора РБМК-1000 Турбина реакторной установки Сепаратор-пароперегреватель Насосы атомной станции с реактором РБМК Система радиационного контроля Атомные станции с реакторами ВВЭР Система управления и контроля Атомные станции с реакторами БН-600 Высшая Математика Курс лекций - 1 семестр Интегралы - второй семестр примеры решения задач Конспекты - третий семестр Производная - 4 семестр ТФКП теория функции Дифференциалы задачи Mathematica учебник Ядерное разоружение Ядерные испытания Ядерная физика MATLAB электронный учебник Maple 7 математический анализ Первообразная курсовые задания Типовой по Кузнецову Смоленская АЭС Чернобыльская катастрофа