14.使用VBNET创建应用程序.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
14.使用VBNET创建应用程序

步骤4– 连续运行 以下为实现方法: 添加复选框: 在设计器中,将复选框拖放到您的窗体上。 修改“外观”属性为“按钮”。 修改按钮文本为“连续运行”。 修改按钮名称为“运行内容检验盒( RunContCheckBox )”。 在复选框上双击并且在其创建的“CheckedChanged”方法中键入下列各行代码: If (RunContCheckBox.Checked) Then Try RunOnceButton.Enabled = False myJobManager.RunContinuous() Catch ex As Exception MessageBox.Show(ex.Message) End Try Else . . . 下页幻灯片继续. . . 步骤4–连续运行(续) 继续键入: 另外 Try RunContCheckBox.Enabled = False myJobManager.Stop() Catch ex As Exception MessageBox.Show(ex.Message) End Try End If 该代码告诉我们CJM在复选框被勾选时,执行RunContinuous() 或者Stop() 。 在我们开始运行时,它还使得“运行一次”按钮失效,而在我们等待CJM停止时使得“连续运行”按钮失效。 步骤4– 连续运行(结束) 我们只需要再添加两行代码: 在停止事件操作者底部添加一行: RunOnceButton.Enabled = True RunContCheckBox.Enabled = True ‘ 在停止时激活 在RunOnceButton_Clicked方法添加另一行如下代码: RunOnceButton.Enabled = False RunContCheckBox.Enabled = False ‘ 如果运行就失效 我们的新按钮已经完成。 花一分钟时间测试一下。 步骤4–避免死锁 注意:我们现在可以在应用程序运行期间关闭它。 但很快如果用户关闭正在运行的应用程序,我们添加的代码将会死锁。 要避免死锁,我们将防止用户在应用程序运行时关闭它。 在运行时,我们将删除允许用户关闭应用程序的“X”按钮。 以下为实现方法:: 在RunOnceButton_Click() 中添加: ControlBox = False RunOnceButton.Enabled = False 在RunContCheckBox_CheckedChanged()中添加: ControlBox = False RunOnceButton.Enabled = False 在myJobManager_Stopped()中添加: ControlBox = True RunOnceButton.Enabled = True “ControlBox”是您窗体的一个属性。它控件名称栏按钮是否可见。 步骤4– 避免死锁(续) 步骤4– 显示运行状态( RunStatus ) 现在我们将更新 GUI显示运行状态。 在您的窗体上添加一个文本框控件,将其命名为“RunStatusTextBox”。 现在GUI 可能看起来有如下图: 步骤4– 运行状态在使用者列队中 步骤4– 事件和线程处理 我们要从使用者列队中调取运行状态并在我们的新文本框中显示。 这一切必须在我们将要编写的新事件操作者中将进行。 该操作者将用于UserResultAvailable事件。 什么线程会激活该事件? 什么线程被允许接触文本框? 没有关系。我们将不得不使用标准技巧避免交叉线程调用。 步骤4– 编写操作者的代码 在我们级别的最后,添加一个新操作者: Private Sub myJobManager_UserResultAvailable( _ ByVal sender As Object, _ ByVal e As CogJobManagerActionEventArgs) If InvokeRequired Then ‘ 创建一个指针指向该函数 Dim myDel As New myJobManagerDelegate( _ AddressOf myJobManager_UserResultAvailable) ‘ 在正确的线程上调用同一个函数 Dim eventArgs() As Object = {sender, e} Invoke(myDel, eventArgs) Return End If End Sub

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档