久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

分享個人總結(jié)VB.NET多線程

 nxhujiee 2010-04-09
  • 分享個人總結(jié)VB.NET多線程

    這里介紹VB.NET多線程的優(yōu)點:可以及時響應(yīng)用戶的操作,,可使軟件的性能提高。VB.NET多線程的編寫:結(jié)構(gòu)合理,、注意同步。

    VB.NET有很多值得學(xué)習(xí)的地方,,這里我們主要介紹VB.NET多線程,,包括介紹功能和實現(xiàn)等方面。
    功能:把選定文件夾下的dll,、子文件夾和子文件夾中的dll填寫到窗體的treeview控件上,。缺點:窗體簡單,代碼有些混亂,,線程之間的調(diào)用可能沒有到最優(yōu)化,。
    實現(xiàn):imagelist中的圖片需要自己重新定義。

    VB.NET多線程的優(yōu)點:可以及時響應(yīng)用戶的操作,,不至于產(chǎn)生“未響應(yīng)”的尷尬,;設(shè)計合理(結(jié)合需求)的話,可使軟件的性能提高,。VB.NET多線程的編寫:結(jié)構(gòu)合理,、注意同步。

    以上是我對這個例程和VB.NET多線程的個人體會,,如有不妥之處,,還請大家批評指正。

            
    1. Imports System.IO  
    2. Public Class Form1  
    3. Inherits System.Windows.Forms.Form  
    4.  
    5. #Region " Windows 窗體設(shè)計器生成的代碼 "  
    6.  
    7. Public Sub New()  
    8. MyBase.New()  
    9. '該調(diào)用是 Windows 窗體設(shè)計器所必需的。  
    10. InitializeComponent()  
    11. '在 InitializeComponent() 調(diào)用之后添加任何初始化  
    12. End Sub  
    13.  
    14. '窗體重寫 dispose 以清理組件列表,。  
    15. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)  
    16. If disposing Then  
    17. If Not (components Is Nothing) Then  
    18. components.Dispose()  
    19. End If  
    20. End If  
    21. MyBase.Dispose(disposing)  
    22. End Sub  
    23.  
    24. 'Windows 窗體設(shè)計器所必需的  
    25. Private components As System.ComponentModel.IContainer  
    26.  
    27. '注意: 以下過程是 Windows 窗體設(shè)計器所必需的  
    28. '可以使用 Windows 窗體設(shè)計器修改此過程,。  
    29. '不要使用代碼編輯器修改它。  
    30. Friend WithEvents TreeView1 As System.Windows.Forms.TreeView  
    31. Friend WithEvents btnOpenBrower As System.Windows.Forms.Button  
    32. Friend WithEvents ImageList1 As System.Windows.Forms.ImageList  
    33. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()  
    34. Me.components = New System.ComponentModel.Container  
    35. Dim resources As System.Resources.ResourceManager = 
      New System.Resources.ResourceManager(GetType(Form1))  
    36. Me.TreeView1 = New System.Windows.Forms.TreeView  
    37. Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components)  
    38. Me.btnOpenBrower = New System.Windows.Forms.Button  
    39. Me.SuspendLayout()  
    40.  
    41. 'TreeView1  
    42.  
    43. Me.TreeView1.Dock = System.Windows.Forms.DockStyle.Left  
    44. MeMe.TreeView1.ImageList = Me.ImageList1  
    45. Me.TreeView1.Location = New System.Drawing.Point(0, 0)  
    46. Me.TreeView1.Name = "TreeView1" 
    47. Me.TreeView1.Size = New System.Drawing.Size(376, 581)  
    48. Me.TreeView1.TabIndex = 0 
    49.  
    50. 'ImageList1  
    51.  
    52. Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16)  
    53. Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), 
      System.Windows.Forms.ImageListStreamer)  
    54. Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent  
    55.  
    56. 'btnOpenBrower  
    57.  
    58. Me.btnOpenBrower.Location = New System.Drawing.Point(408, 64)  
    59. Me.btnOpenBrower.Name = "btnOpenBrower" 
    60. Me.btnOpenBrower.Size = New System.Drawing.Size(96, 23)  
    61. Me.btnOpenBrower.TabIndex = 1 
    62. Me.btnOpenBrower.Text = "Open Brower" 
    63.  
    64. 'Form1  
    65.  
    66. Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)  
    67. Me.ClientSize = New System.Drawing.Size(536, 581)  
    68. Me.Controls.Add(Me.btnOpenBrower)  
    69. Me.Controls.Add(Me.TreeView1)  
    70. Me.Name = "Form1" 
    71. Me.Text = "Form1" 
    72. Me.ResumeLayout(False)  
    73. End Sub  
    74.  
    75. #End Region  
    76. Private Sub OpenBrower()  
    77. Dim f As New FolderBrowserDialog  
    78. If f.ShowDialog = DialogResult.OK Then  
    79. Me.TreeView1.Nodes.Clear()  
    80. Me.SuspendLayout()  
    81. Dim nodeTemp As TreeNode = CType(Me.Invoke(New AddTreeNodeHandler
      (AddressOf Me.AddFileToTreeview), New Object() {f.SelectedPath}), TreeNode)  
    82. Me.AddFile(New DirectoryInfo(f.SelectedPath), nodeTemp)  
    83. Me.ResumeLayout(False)  
    84. End If  
    85. End Sub  
    86.  
    87. Private Sub AddFile(ByVal dirPath As DirectoryInfo, ByVal node As TreeNode)  
    88. Dim tempHandler As New AddFileHandler(AddressOf Me.AddFileToTreeNode)  
    89. For Each dir As DirectoryInfo In dirPath.GetDirectories()  
    90. Dim nodeTemp As TreeNode = CType(Me.Invoke(tempHandler, 
      New Object() {dir.Name, CLASSIO.Directory, node}), TreeNode)  
    91. Me.AddFile(dir, nodeTemp)  
    92. Next  
    93. For Each file As FileInfo In dirPath.GetFiles("*.dll")  
    94. Me.Invoke(tempHandler, New Object() {file.Name, CLASSIO.File, node})  
    95. Next  
    96. End Sub  
    97.  
    98. Private Function AddFileToTreeNode(ByVal str As String, 
      ByVal cls As CLASSIO, ByVal node As TreeNode) As TreeNode  
    99. Dim nodeTemp As New TreeNode(str)  
    100. nodeTemp.ImageIndex = CInt(cls)  
    101. node.Nodes.Add(nodeTemp)  
    102. nodeTempnodeTemp.SelectedImageIndex = nodeTemp.ImageIndex  
    103. Return nodeTemp  
    104. End Function  
    105.  
    106. Private Function AddFileToTreeview(ByVal str As String) As TreeNode  
    107. Dim nodeTemp As New TreeNode(str)  
    108. Me.TreeView1.Nodes.Add(nodeTemp)  
    109. Return nodeTemp  
    110. nodeTemp.SelectedImageIndex = CInt(CLASSIO.Directory)  
    111. End Function  
    112.  
    113. Private Sub btnOpenBrower_Click(ByVal sender As System.Object, 
      ByVal e As System.EventArgs) Handles btnOpenBrower.Click  
    114. '多線程  
    115. Dim t As Threading.Thread = New Threading.Thread(AddressOf Me.OpenBrower)  
    116. t.Start()  
    117.  
    118. '單線程  
    119. 'Me.OpenBrower()  
    120. End Sub  
    121. End Class  
    122.  
    123. Public Enum CLASSIO  
    124. File = 1 
    125. Directory = 0 
    126. End Enum  
    127.  
    128. Public Delegate Function AddFileHandler(ByVal str As String, 
      ByVal cls As CLASSIO, ByVal Node As TreeNode) As TreeNode  
    129. Public Delegate Function AddTreeNodeHandler(ByVal str As String) As TreeNode 

    【編輯推薦】

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多