实现
我们将在一个类库项目中实现框架,这样就可以在任何需要执行后台处理的应用程序中使用它。
打开Visual Studio .NET并建立一个叫做Background的新类库应用程序。因为该库包含一个Windows窗体控件和窗体,我们需要使用Add References对话框引用System.Windows.Forms.dll和System.Windows.Drawing.dll。此外,我们使用图6中显示的项目属性对话框可以导入这些全项目(project-wide)的名字空间。
图6:使用项目属性添加全项目名字空间的导入
这完成后我们准备写代码了。从建立接口开始。
定义接口程序
给项目添加一个叫IClient的类,代码如下:
Public Interface IClient
Sub Start(ByVal Controller As Controller)
Sub Display(ByVal Text As String)
Sub Failed(ByVal e As Exception)
Sub Completed(ByVal Cancelled As Boolean)
End Interface
接着添加一个叫IWorker的类,代码如下:
| Public Interface IWorker Sub Initialize(ByVal Controller As IController) Sub Start() End Interface |
最后使用下面的代码添加一个叫IController的类:
| Public Interface IController ReadOnly Property Running() As Boolean Sub Display(ByVal Text As String) Sub SetPercent(ByVal Percent As Integer) Sub Failed(ByVal e As Exception) Sub Completed(ByVal Cancelled As Boolean) End Interface |
这时我们已经定义了先前讨论过的类图中的所有接口。因此,现在我们可以实现Controller类。
Controller类
现在我们将实现框架的核心部分--Controller类。该类将包含启动工作线程的代码并在工作线程完成前,作为UI线程和工作线程的中介。
给项目添加一个叫Controller的新类。首先我们将添加一个Imports并声明一些变量:
| Imports System.Threading Public Class Controller Implements IController Private mWorker As IWorker Private mClient As Form Private mRunning As Boolean Private mPercent As Integer |
接着我们需要定义一些委托(delegate)。委托是指向方法的形式指针,并且某个方法的委托必须与该方法的特征(参数类型等)相同。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页