首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> VB.NET >> 正文

使用.NET多线程技术显示实时股票信息

  你点击第二个图表的"获取股票报价"按钮的时候,代码建立一个新的线程--同时激活计时器,这样窗体才能够显示线程的状态信息:


Private Sub btnGetStockQuote2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnGetStockQuote2.Click
 Dim sq As New StockQuote
 sq.StockSymbol = cmbStocks2.SelectedItem
 sq.ChartControl = Chart2
 t2 = New Thread(AddressOf sq.InvokeWebService)
 t2.Start()

 '激活暂停和停止按钮
 btnPauseContinue.Enabled = True
 btnStop.Enabled = True
 '激活计时器控件
 Timer1.Enabled = True
End Sub

  按F5测试这两个图表(图7所示)。为每个图表选择一只股票,你将看到这两个图表同步显示。

使用.NET多线程技术显示实时股票信息(3)
图7:增强的两图表应用程序-增强的版本同时显示了两个图表。

  当第二个线程运行的时候,你可以注意到其状态在Running和WaitSleepJoin之间交替。这是因为某个线程要么在执行(Running),要么在睡眠(WaitSleepJoin)。当该线程被暂停的时候,它的状态是WaitSleepJoin、Suspended。当该线程被取消的时候,它的状态先是AbortRequested,接着变成了Stopped。

  如果要暂停该线程,需要首先检测运行中线程的状态,然后使用Suspend()方法。在暂停一个线程之后,你可以使用Resume()方法继续执行它。

Private Sub btnPauseContinue_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnPauseContinue.Click
' 如果线程处于睡眠和运行状态就挂起它
If t2.ThreadState = ThreadState.WaitSleepJoin _
 Or t2.ThreadState = ThreadState.Running Then
 t2.Suspend()
 btnPauseContinue.Text = "Continue"
Else
 ' 继续该线程
 t2.Resume()
 btnPauseContinue.Text = "Pause"
End If
End Sub

  停止线程则使用Abort()方法:

Private Sub btnStop_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnStop.Click
Try
 If Not t2.ThreadState = ThreadState.Stopped Then
  btnPauseContinue.Enabled = False
  btnStop.Enabled = False
  t2.Abort()
 End If
Catch ex As Exception
 MsgBox(ex.ToString)
End Try
End Sub

  通过运行示例项目,你会发现自己已经能够使用多线程技术建立应用程序,使应用程序在执行后台事务的时候,仍然保持响应。尽管本文的示例使用的是Web服务,但是相同的原则也可以应用于其它类型的后台事务。例如,你可以改变这个应用程序以读取外部设备(例如温度计或血压计监视设备)的数据。

上一页  [1] [2] [3] [4] 

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航