Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Потоки в Visual Basic

Реферат Потоки в Visual Basic





ні до проміжного об'єкту. Природно, що цей підхід вимагає значного часу на виконання завдання, проте він дозволяє виконати всі угоди. Цей процес перемикання потоків і пересилання даних від проміжного об'єкта до фактичного об'єкту і назад називається marshalling. Ця тема обговорюється в главі 6 моєї книги Developing ActiveX Components. p> У разі DLL серверів, одиночна потокова модель вимагає, щоб усі об'єкти в сервері створювалися і викликалися в тому ж самому потоці що і перший об'єкт, створений сервером.

Модель Apartment Threading

Зверніть увагу, що модель Apartment Threading як визначено COM не вимагає, щоб кожен потік мав власний набір глобальних змінних. Visual Basic таким чином реалізує модель Apartment Threading. Модель Apartment Threading декларує, що кожен об'єкт може бути створений у власному потоці, проте, як тільки об'єкт створений, його методи і властивості можуть викликатися тільки тим же самим потоком, яка створив об'єкт. Якщо об'єкт іншого потоку захоче мати доступ до методів цього об'єкту, то він повинен діяти через проміжний об'єкт.

Така модель відносно проста для реалізації. Якщо Ви усуваєте глобальні змінні (Як робить Visual Basic), модель Apartment Threading автоматично гарантує безпека потоку - так як кожен об'єкт дійсно виконується в власному потоці, і завдяки відсутності глобальних змінних, об'єкти в різних потоках не взаємодіють один з одним.

Модель вільних потоків

Модель вільних потоків (Free Threading Model) полягає в наступному .. Будь-який об'єкт може бути створений в будь-якому потоці. Всі методи і властивості будь-якого об'єкта можуть бути викликає в будь-який час з будь-якого потоку. Об'єкт приймає на себе всю відповідальність за обробку будь-якої необхідної синхронізації.

Це сама важка в реалізації модель, так як потрібно, щоб всю синхронізацію обробляв програміст. Фактично до недавнього часу, технологія OLE безпосередньо не підтримувала цю модель! Однак, з тих пір marshalling ніколи не потрібно і це найбільш ефективна модель потоків.

Яку модель підтримує ваш сервер?

Як додаток або сама Windows дізнається, яку модель потоків використовує сервер? Ця інформація включена до реєстру (registry). Коли Visual Basic створює об'єкт, він перевіряє системний реєстр, щоб визначити, в яких випадках потрібно використовувати проміжний об'єкт (proxy object) і в яких - marshalling.

Ця перевірка є обов'язком клієнта і необхідна для суворої підтримки вимог багатопоточності для кожного об'єкта, якого він створює.

Функція API CreateThread

Тепер давайте подивимося, як з Visual Basic може використовуватися функція API CreateThread. Скажімо, Ви маєте клас, що Ви хочете виполненять в іншому потоці, наприклад, щоб виконати деяку фонову операцію. Характерний клас такого типу міг б мати наступний код (з прикладу MTDemo 3):

'Class clsBackgro...


Назад | сторінка 8 з 15 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Порівняльний аналіз трьох моделей життєвого циклу організації: модель Торбе ...
  • Реферат на тему: Використання моделей життєвого циклу інформаційної системи. Каскадна модел ...
  • Реферат на тему: Транспортна модель. Математична модель задачі
  • Реферат на тему: Модель технічного об'єкта
  • Реферат на тему: Модель об'єкта у вигляді передавальної функції