Курсовая работа: Потоки в Visual Basic

Option Explicit

Private Sub Class_Initialize()

Dim f As New frmMTDemo2

f.Show

Set f = Nothing

EndSub

Мы можем установить переменную формы как 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)

EndSub

Форма отображает идентификатор потока в метке на форме. Форма содержит две командные кнопки, одна из которых использует оператор New, другая -использует оператор CreateObject.

Если Вы запустите программу внутри среды Visual Basic, то увидите, что формы всегда создаются в одном и том же потоке. Это происходит, потому что среда Visual Basic поддерживает только одиночный поток. Если Вы скомпилируете и запустите программу, то увидите, что подход, использующий CreateObject создает и clsMTDemo2 и ее форму в новом потоке.

Почему многопоточность

Откуда вся суета относительно многопоточного режима, если он включает так много потенциальной опасности? Потому что, в некоторых ситуациях, многопоточный режим может значительно улучшать эффективность приложения. В некоторых случаях это может улучшать эффективность некоторых операций синхронизации типа ожидания завершения приложения. Это позволяет сделать архитектуру приложения более гибкой. Например, операция Add a long в форме MTDEMO2 со следующим кодом:

Private Sub cmdLongOp_Click()

Dim l&

Dim s$

For l = 1 To 1000000

s = Chr$(l And &H7F)

К-во Просмотров: 662
Бесплатно скачать Курсовая работа: Потоки в Visual Basic