2009-10-12 41 views
0

我已经写了一个基于GUI的vb.net程序,通过COM端口与嵌入式设备通信。 GUI代码包含所有与嵌入式设备进行通信的类(通信设备,通信协议,解析信息,每次读取后的保持设备相关信息)。该类称为EDComms。VB.net简单的基于线程的GUI程序。在哪里把线程

我想添加一个线程,以便EDComms对象可以在后台运行,并在下载日志文件等时报告回(有时需要一段时间才能从设备获取日志文件)。

所以。我应该从BackgroundWorker线程继承EDComms吗?或者我应该有一个后台工作线程作为EDComms的成员?

现在我正在与第二选择。我现在唯一要做的就是写一个func来注册GUI中的两个委托来通知任务进度,并通知任务完成。

在这两个选择中,我选择了更好的? 还是有比这两个我提出的更好的选择也许有线程作为GUI的成员?

谢谢。

回答

1

当你从一个类继承,你暗示着一个IS关系。 EDComms不是一个线程。让它管理线程是一种方法,或者你可能会在班级外部有一个背景工作者。但我会说唯一的选择不应该是一个选项,是继承选项。

根据我对您的应用程序的了解,您已选择了最佳选项。

1

真的,没问题。从设计的角度来看,这更多的是你想要的线程。 EDComms对象是自己做的工作,还是你希望EDComms对象简单地包装工作者并提供一个接口来与之通信。就我个人而言,我更喜欢你的选择,我认为这是合乎逻辑的,但这只是我的看法。