知识大全 VB.NET中采用多线程填写treeview控件

Posted

篇首语:要须心地收汗马,孔孟行世目杲杲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VB.NET中采用多线程填写treeview控件相关的知识,希望对你有一定的参考价值。

VB.NET中采用多线程填写treeview控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

功能 把选定文件夹下的dll 子文件夹和子文件夹中的dll填写到窗体的treeview控件上   缺点 窗体简单 代码有些混乱 线程之间的调用可能没有到最优化   实现 imagelist中的图片需要自己重新定义   多线程的优点 可以及时响应用户的操作 不至于产生 未响应 的尴尬 设计合理(结合需求)的话 可使软件的性能提高   多线程的编写 结构合理 注意同步   以上是我对这个例程和多线程的个人体会 如有不妥之处 还请大家批评指正 Imports System IOPublic Class Form Inherits System Windows Forms Form#Region Windows 窗体设计器生成的代码 Public Sub New() MyBase New()  该调用是 Windows 窗体设计器所必需的  InitializeComponent()  在 InitializeComponent() 调用之后添加任何初始化End Sub 窗体重写 dispose 以清理组件列表 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then  If Not (ponents Is Nothing) Then   ponents Dispose()  End If End If MyBase Dispose(disposing)End Sub Windows 窗体设计器所必需的Private ponents As System ComponentModel IContainer  注意: 以下过程是 Windows 窗体设计器所必需的  可以使用 Windows 窗体设计器修改此过程   不要使用代码编辑器修改它  Friend WithEvents TreeView As System Windows Forms TreeView Friend WithEvents btnOpenBrower As System Windows Forms Button Friend WithEvents ImageList As System Windows Forms ImageList <System Diagnostics DebuggerStepThrough()> Private Sub InitializeComponent() ponents = New System ComponentModel Container Dim resources As System Resources ResourceManager = New System Resources ResourceManager(GetType(Form )) Me TreeView = New System Windows Forms TreeView Me ImageList = New System Windows Forms ImageList(ponents) Me btnOpenBrower = New System Windows Forms Button Me SuspendLayout()    TreeView    Me TreeView Dock = System Windows Forms DockStyle Left Me TreeView ImageList = Me ImageList  Me TreeView Location = New System Drawing Point( ) Me TreeView Name = TreeView  Me TreeView Size = New System Drawing Size( ) Me TreeView TabIndex =     ImageList    Me ImageList ImageSize = New System Drawing Size( ) Me ImageList ImageStream = CType(resources GetObject( ImageList ImageStream ) System Windows Forms ImageListStreamer) Me ImageList TransparentColor = System Drawing Color Transparent    btnOpenBrower   Me btnOpenBrower Location = New System Drawing Point( ) Me btnOpenBrower Name = btnOpenBrower  Me btnOpenBrower Size = New System Drawing Size( ) Me btnOpenBrower TabIndex =  Me btnOpenBrower Text = Open Brower     Form    Me AutoScaleBaseSize = New System Drawing Size( ) Me ClientSize = New System Drawing Size( ) Me Controls Add(Me btnOpenBrower) Me Controls Add(Me TreeView ) Me Name = Form  Me Text = Form  Me ResumeLayout(False)End Sub#End RegionPrivate Sub OpenBrower() Dim f As New FolderBrowserDialog If f ShowDialog = DialogResult OK Then  Me TreeView Nodes Clear()  Me SuspendLayout()  Dim nodeTemp As TreeNode = CType(Me Invoke(New AddTreeNodeHandler(AddressOf Me AddFileToTreeview) New Object() f SelectedPath) TreeNode)  Me AddFile(New DirectoryInfo(f SelectedPath) nodeTemp)  Me ResumeLayout(False) End IfEnd SubPrivate Sub AddFile(ByVal dirPath As DirectoryInfo ByVal node As TreeNode) Dim tempHandler As New AddFileHandler(AddressOf Me AddFileToTreeNode) For Each dir As DirectoryInfo In dirPath GetDirectories()  Dim nodeTemp As TreeNode = CType(Me Invoke(tempHandler New Object() dir Name CLASSIO Directory node) TreeNode)  Me AddFile(dir nodeTemp) Next For Each file As FileInfo In dirPath GetFiles( * dll )  Me Invoke(tempHandler New Object() file Name CLASSIO File node) NextEnd SubPrivate Function AddFileToTreeNode(ByVal str As String ByVal cls As CLASSIO ByVal node As TreeNode) As TreeNode Dim nodeTemp As New TreeNode(str) nodeTemp ImageIndex = CInt(cls) node Nodes Add(nodeTemp) nodeTemp SelectedImageIndex = nodeTemp ImageIndex Return nodeTempEnd FunctionPrivate Function AddFileToTreeview(ByVal str As String) As TreeNode Dim nodeTemp As New TreeNode(str) Me TreeView Nodes Add(nodeTemp) Return nodeTemp nodeTemp SelectedImageIndex = CInt(CLASSIO Directory)End FunctionPrivate Sub btnOpenBrower_Click(ByVal sender As System Object ByVal e As System EventArgs) Handles btnOpenBrower Click  多线程 Dim t As Threading Thread = New Threading Thread(AddressOf Me OpenBrower) t Start()   单线程  Me OpenBrower()End SubEnd ClassPublic Enum CLASSIO File =  Directory = End EnumPublic Delegate Function AddFileHandler(ByVal str As String ByVal cls As CLASSIO ByVal Node As TreeNode) As TreeNodePublic Delegate Function AddTreeNodeHandler(ByVal str As String) As TreeNode cha138/Article/program/net/201311/13318

相关参考

知识大全 VB.NET中层次数据绑定TreeView的实现

VB.NET中层次数据绑定TreeView的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 VB.NET多线程开发实例

同Java一样简单!VB.NET多线程开发实例  以下文字资料是由(历史新知网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VBNET

知识大全 使用VB.NET开发定制控件

使用VB.NET开发定制控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 正常情况下在开发NET

知识大全 如何轻松调整VB.NET控件

如何轻松调整VB.NET控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Anchor属性可以

知识大全 VB.NET中的TextBox控件详解

VB.NET中的TextBox控件详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!TextBox

知识大全 vb.net入门——DomainUpDown 控件的使用

vb.net入门——DomainUpDown控件的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 如何应用VB.NET MonthCalendar控件

如何应用VB.NETMonthCalendar控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 在VB.Net中创建使用控件数组

在VB.Net中创建使用控件数组  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一首先创建一个But

知识大全 ASP.NET 3.5中的Login控件应用vb.net实现

ASP.NET3.5中的Login控件应用vb.net实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 使用VB.NET开发自定义Windows控件

使用VB.NET开发自定义Windows控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一前