你目前正处于脱机状态,正在等待 Internet 重新连接

你的浏览器不受支持

你需要更新你的浏览器才能使用该网站。

更新到 Internet Explorer 的最新版本

如何在 Visual Basic.net 或 Visual Basic 2005 中创建线程

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 315577
概要
本文介绍如何在 Microsoft Visual Basic.net 或 Visual Basic 2005 Windows 应用程序中创建线程。System.Threading 命名空间提供了线程处理所必需的类。

要求

下面的列表概述了建议的硬件、 软件、 网络的基础结构和服务包,您需要:
  • Microsoft Windows 2000 或 Windows XP
  • Microsoft Visual Basic.net 或 Microsoft Visual Basic 2005
本文假定您熟悉下列主题:
  • Visual Basic.net 编程或 Visual Basic 2005 编程
  • visual Studio.net 或 Visual Studio 2005 集成的开发环境 (IDE)
  • 常规熟悉委托和线程处理
  • 常规熟悉 Visual Basic.net 或 Visual Basic 2005

使用线程创建 Visual Basic.net 或 Visual Basic 2005 应用程序

  1. 启动 Microsoft Visual Studio.net 或 Microsoft Visual Studio 2005。
  2. 创建新命名 ThreadWinApp 的 Visual Basic Windows 应用程序项目。
  3. 将一个 按钮 控件添加到窗体。默认情况下,该按钮是名为 Button1
  4. ProgressBar 组件添加到窗体。默认情况下,进度栏被命名为 ProgressBar1
  5. 用鼠标右键单击该的表单,然后单击 查看代码
  6. 将以下语句添加到该文件的开头:
    Imports System.Threading					
  7. 将以下 Click 事件处理程序添加为 Button1
    Private Sub Button1_Click( _    ByVal sender As System.Object, ByVal e As System.EventArgs) _    Handles Button1.Click    MessageBox.Show("This is the main thread")End Sub					
  8. 将下面的变量添加到 Form1 类:
    Private trd As Thread					
  9. 将下面的方法添加到 Form1 类:
    Private Sub ThreadTask()    Dim stp As Integer    Dim newval As Integer    Dim rnd As New Random()    Do        stp = ProgressBar1.Step * rnd.Next(-1, 2)        newval = ProgressBar1.Value + stp        If newval > ProgressBar1.Maximum Then            newval = ProgressBar1.Maximum        ElseIf newval < ProgressBar1.Minimum Then            newval = ProgressBar1.Minimum        End If        ProgressBar1.Value = newval        Thread.Sleep(100)    LoopEnd Sub						
    注意: 这是支持的线程基础代码。此代码是一个无限循环该随机递增或递减 ProgressBar1 中的值,然后等待 100 毫秒为单位) 之前它将继续。
  10. Form1 中添加以下的 Load 事件处理程序。此代码创建一个新线程,使得在后台线程的线程,然后启动该线程
    Private Sub Form1_Load( _    ByVal sender As System.Object, ByVal e As System.EventArgs) _    Handles MyBase.Load    trd = New Thread(AddressOf ThreadTask)    trd.IsBackground = True    trd.Start()End Sub					

确认它可以工作

  1. 生成并运行该应用程序。请注意在进度栏中的值会随机更改。这是新的线程中操作。
  2. 为了演示主线程是独立于 ProgressBar 值更改为该线程,单击窗体上的按钮。一个消息框将显示以下消息:
    This is the main thread							
    等待输入。请注意,在进度栏中的值不断变化。

故障排除

在更复杂的应用程序确保在访问共享的变量时同步多个线程。有关详细的信息,请参阅 SyncLock 语句和 Visual Basic 联机帮助文档中的相关的主题。
多线程

警告:本文已自动翻译

属性

文章 ID:315577 - 上次审阅时间:12/06/2006 23:18:59 - 修订版本: 4.3

  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 标准版
  • Microsoft Visual .NET 2002 标准版
  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB315577 KbMtzh
反馈