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

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





ub Main:

'MTDemo2 - Multithreading demo program

'Copyright В© 1997 by Desaware Inc. All Rights Reserved

Option Explicit

Declare Function FindWindow Lib "user32" Alias ​​"FindWindowA" _

(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub Main ()

Dim f As frmMTDemo2

'We need this because Main is called on each new thread

Dim hwnd As Long

hwnd = FindWindow (vbNullString, "Multithreading Demo2 ")

If hwnd = 0 Then

Set f = New frmMTDemo2

f.Show

Set f = Nothing

End If

End Sub

Перший раз програма завантажує і відображає основну форму додатку. Підпрограма Main має з'ясувати, чи є це першим потоком програми, тому цей код виконується при старті кожного потоку. Ви не можете використовувати глобальну змінну, щоб це з'ясувати, тому що Visual Basic apartment model зберігає глобальні змінні специфічними для одиночного потоку. У цьому прикладі використовується функція API FindWindow, щоб перевірити, чи була завантажена основна форма прикладу. Є інші способи з'ясувати, чи є це основним потоком, включаючи використання об'єктів синхронізації системи - але це окрема тема для розмови.

Багатопотоковий режим реалізується створенням об'єкта в новому потоці. Об'єкт повинен бути визначено, використовуючи модуль класу. У цьому випадку, простий модуль класу визначається наступним чином:

'MTDemo2 - Multithreading demo program

'Copyright В© 1997 by Desaware Inc. All Rights Reserved

Option Explicit

Private Sub Class_Initialize ()

Dim f As New frmMTDemo2

f.Show

Set f = Nothing

End Sub

Ми можемо встановити змінну форми як nothing після того, як вона створена, тому що після відображення форми вона буде збережена.

'MTDemo2 - Multithreading demo program

'Copyright В© 1997 by Desaware Inc. All Rights Reserved

Option Explicit

Private Sub cmdLaunch1_Click ()

Dim c As New clsMTDemo2

c.DisplayObjPtr Nothing

End Sub

Private Sub cmdLaunch2_Click ()

Dim c As clsMTDemo2

Set c = CreateObject ("MTDemo2.clsMTDemo2")

End Sub

Private Sub Form_Load ()

lblThread.Caption = Str $ (App.ThreadID)

End Sub

Форма відображає ідентифікатор потоку в мітці на формі. Форма містить дві командні кнопки, одна з яких використовує оператор New, інша-використовує оператор CreateObject. p> Якщо Ви запустіть програму всередині середовища Visual Basic, то побачите, що форми завжди створюються в одному і тому ж потоці. Це відбувається, тому що середовище Visual Basic підтримує тільки одиночний потік. Якщо Ви скомпілюєте і запустіть програму, то побачите, що підхід, що використовує CreateObject створює і clsMTDemo2 і її форму у новому потоці.

Чому багато...


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





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

  • Реферат на тему: Програма Visual Basic Script
  • Реферат на тему: Розробка програми мовою Visual Basic
  • Реферат на тему: Grammar of the Text: its Basic Units and Main Features (based on the novel ...
  • Реферат на тему: Використання Visual Basic for Applications в автоматизації банківських опер ...
  • Реферат на тему: Створення програми для обчислення площі геометричних фігур у середовищі Vis ...