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

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





стартує потік. Він повинен бути рівний адресою функції в стандартному модулі, отриманому при використанні оператора AddressOf. p> lpParameter - long 32 розрядний параметр, який передається функції, запускає новий потік. p> dwCreationFlags - 32 біт мінлива прапорів, яка дозволяє Вам управляти запуском потоку (Активний, припинений і т.д.). Детальніше про ці прапорах можна почитати в Microsoft's online 32 bit reference. p> lpThreadId - змінна, в яку завантажується унікальний ідентифікатором нового потоку. p> Функція повертає дескриптор потоку.

У цьому випадку ми передаємо покажчик на об'єкт clsBackground, який ми будемо використовувати в новому потоці. ObjPtr відновлює значення покажчика інтерфейсу в змінну qobj. Після створення потоку закривається дескриптор за допомогою функції CloseHandle. Це дія не завершує потік, - потік продовжує виконуватися до виходу з функції BackgroundFuncFree. Однак, якщо ми не закрили дескриптор, то об'єкт потоку буде існувати навіть після виходу з функції BackgroundFuncFree. Всі дескриптори потоку повинні бути закриті і при завершенні потоку система звільняє зайняті потоком ресурси.

Функція BackgroundFuncFree має наступний код:

'A free threaded callback.

'A free threaded callback.

'This is an invalid approach, though it works

'in this case.

Public Function BackgroundFuncFree (ByVal param As IUnknown) As Long

Dim qobj As clsBackground

Dim res &

'Free threaded approach

Set qobj = param

Do While Not qobj.DoTheCount (100000)

Loop

'qobj.ShowAForm' Crashes!

'Thread ends on return

End Function

Параметром цієї функції є-вказівник на інтерфейс (ByVal param As IUnknown). При цьому ми можемо уникнути неприємностей, тому що під COM кожен інтерфейс грунтується на IUnknown, так що такий тип параметра допустимо незалежно від типу інтерфейсу, переданого функції. Ми, однак, повинні негайно визначити param як тип об'єкта, щоб потім його використовувати. У цьому випадку qobj установлівать як об'єкт clsBackground, який був переданий до об'єкта StartBackgroundThreadFree.

Функція потім виконує нескінченний цикл, протягом якого може виконуватися будь-яка необхідна операція, в цьому випадку повто рний рахунок. Подібний підхід міг би використовуватися тут, щоб виконати операцію очікування, яка призупиняє потік поки не проізойдкт системне подія (типу завершення процесу). Потік потім міг би викликати метод класу, щоб повідомити додатку, що подія відбулася.

Доступ до об'єкту qobj надзвичайно швидкий через використання підходу вільного потоку (Free threading) - ніяка переадресація (marshalling) при цьому не використовується.

Зверніть увагу на те, що якщо Ви спробуєте використовувати об'єкт clsBackground, який показує форму, то це призведе до збоїв програми. Зверніть також увагу на те, що поді...


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





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

  • Реферат на тему: Розробка термогенератора, який буде використовувати тепло двигуна для заряд ...
  • Реферат на тему: Розрахунок виробничої програми швейного потоку
  • Реферат на тему: Система вимірювання швідкості газового потоку турбіни
  • Реферат на тему: Оптимізація матеріального потоку
  • Реферат на тему: Проектування швейного потоку