当前位置: 网学 > 编程文档 > VB > 正文

在Visual Basic .NET 中实现后台进程

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
As New DisplayDelegate( _
      AddressOf CType(mClient, IClient).Display)
    Dim ar() As Object = {Text}

    '' 调用 UI 线程上的客户端窗体
    '' 以更新显示
    mClient.BeginInvoke(disp, ar)

  End Sub

  '' 从辅助线程调用,以表明出现故障
  '' 这将触发对包含异常对象的 UI 的
  '' 方法调用 - 该调用是在 UI 线程上
  '' 进行的
  Private Sub Failed(ByVal e As Exception) _
      Implements IController.Failed

    Dim disp As New FailedDelegate(_
      AddressOf CType(mClient, IClient).Failed)
    Dim ar() As Object = {e}

    '' 在 UI 线程上调用客户端窗体
    '' 以表明出现故障
    mClient.Invoke(disp, ar)

  End Sub

  '' 从辅助线程上调用,以指出完成的百分比
  '' 值将转到 Controller,由 UI 在需要时读取
  Private Sub SetPercent(ByVal Percent As Integer) _
      Implements IController.SetPercent

    mPercent = Percent

  End Sub

  '' 从辅助线程调用,以表明已完成
  '' 我们还传递参数,以表明是否真正完成,
  '' 以及是否取消在 UI 线程上进行的对 UI
  '' 的调用
  Private Sub Completed(ByVal Cancelled As Boolean) _
      Implements IController.Completed

    mRunning = False
    Dim comp As New CompletedDelegate( _
      AddressOf CType(mClient, IClient).Completed)
    Dim ar() As Object = {Cancelled}

    '' 调用 UI 线程上的客户端窗体
    '' 以表明已完成
    mClient.Invoke(comp, ar)

  End Sub

  '' 表明是否仍在运行或是否已请求取消
  '' 这将在辅助线程上进行调用,因此
  '' 辅助代码可以查看它是否应该正常
  '' 退出
  Private ReadOnly Property Running() As Boolean _
      Implements IController.Running
    Get
      Return mRunning
    End Get
  End Property

#End Region

Failed 和 Completed 方法利用窗体的 Invoke 方法。例如,Failed 方法可以执行以下操作:

    Dim disp As New FailedDelegate(_
      AddressOf CType(mClient, IClient).Failed)
    Dim ar() As Object = {e}

    '' 调用 UI 线程上的客户端窗体
    '' 以表明出现故障
    mClient.Invoke(disp, ar)

首先创建一个委托,从 IClient 接口指向客户端窗体的 Failed 方法。然后声明包含向方法传递参数值的 Object 类型数组。最后调用客户端窗体的 Invoke 方法,将委托指针和参数数组传递给窗体。

窗体将在 UI 线程(窗体在这里可以安全运行以更新显示)上使用这些参数调
  • 上一篇资讯: VB关于日期的中文转换
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号