你点击第二个图表的"获取股票报价"按钮的时候,代码建立一个新的线程--同时激活计时器,这样窗体才能够显示线程的状态信息:
| 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 |
![]() 图7:增强的两图表应用程序-增强的版本同时显示了两个图表。 |
| 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 |
| 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 |

