国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
分享個(gè)人總結(jié)VB.NET多線程
  • 分享個(gè)人總結(jié)VB.NET多線程

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

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

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

    以上是我對(duì)這個(gè)例程和VB.NET多線程的個(gè)人體會(huì),如有不妥之處,還請(qǐng)大家批評(píng)指正。

            
    1. Imports System.IO  
    2. Public Class Form1  
    3. Inherits System.Windows.Forms.Form  
    4.  
    5. #Region " Windows 窗體設(shè)計(jì)器生成的代碼 "  
    6.  
    7. Public Sub New()  
    8. MyBase.New()  
    9. '該調(diào)用是 Windows 窗體設(shè)計(jì)器所必需的。  
    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è)計(jì)器所必需的  
    25. Private components As System.ComponentModel.IContainer  
    26.  
    27. '注意: 以下過程是 Windows 窗體設(shè)計(jì)器所必需的  
    28. '可以使用 Windows 窗體設(shè)計(jì)器修改此過程。  
    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 

    【編輯推薦】

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB.NET中動(dòng)態(tài)加載Treeview節(jié)點(diǎn)
ASP.NET中樹形圖的實(shí)現(xiàn)
采用遞歸算法為TreeView控件加載節(jié)點(diǎn)(節(jié)點(diǎn)信息保存于SqlServer) ASP.Net相...
windows mobile 下如何編程實(shí)現(xiàn)重啟、關(guān)機(jī)(vb.net)(頁 1) - 移動(dòng)...
Flash player1
在VB.NET中進(jìn)行抓屏
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服