【发布时间】:2012-11-28 11:07:00
【问题描述】:
我的表单需要一点(或很大)帮助:我需要在单独的线程中使用“组织函数”区域内的所有内容。
我在表单的“开始按钮”区域中按下一个按钮来调用“组织功能”子程序的第一个子程序;第一个子调用第二个子,第二个子调用第三个子。
我尝试自己将第三个 sub 添加到单独的线程中,然后使用第二个 sub 将参数传递给线程,但我所做的一切都是错误的。
有人可以帮我做吗?
PS:我已经删除了这个表格中不重要的部分,以便您更好地检查。
感谢您的阅读。
Public Class Form1
#Region "Declarations"
' MediaInfo
Dim MI As MediaInfo
' Thread
Dim paused As Boolean = False
' Others
Dim NameOfDirectory As String = Nothing
Dim aFile As FileInfo
#End Region
'thread
Dim t As New Thread(AddressOf ThreadProc)
Public Sub ThreadProc()
' Aqui debería ir todo el sub de "organize function", bueno... son 3 subs!
If paused = True Then MsgBox("THREAD PAUSADO")
End Sub
#Region "Properties"
...
#End Region
#Region "Load / Close"
...
#End Region
#Region "Get Total files Function"
...
#End Region
#Region "Option checkboxes"
...
#End Region
#Region "Folder buttons"
...
#End Region
#Region "Append text function"
...
#End Region
#Region "Action buttons"
' pause button
Private Sub pause_button_Click(sender As Object, e As EventArgs) Handles pause_button.Click
paused = True
End Sub
' start button
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles start_button.Click
t.Start()
' Organization process
NameOfDirectory = userSelectedFolderPath
MediaInfo(NameOfDirectory)
End Sub
#End region
#Region "Organize function"
Public Sub MediaInfo(Directory)
Dim MyDirectory As DirectoryInfo
MyDirectory = New DirectoryInfo(NameOfDirectory)
MediaInfoWorkWithDirectory(MyDirectory)
End Sub
Public Sub MediaInfoWorkWithDirectory(ByVal aDir As DirectoryInfo)
Dim nextDir As DirectoryInfo
MediaInfoWorkWithFilesInDir(aDir)
For Each nextDir In aDir.GetDirectories
Using writer As StreamWriter = New StreamWriter(aDir.FullName & "\" & nextDir.Name & "\" & nextDir.Name & ".m3u", False, System.Text.Encoding.UTF8)
'overwrite existing playlist
End Using
MediaInfoWorkWithDirectory(nextDir)
Next
End Sub
Public Sub MediaInfoWorkWithFilesInDir(ByVal aDir As DirectoryInfo)
Dim aFile As FileInfo
For Each aFile In aDir.GetFiles()
' hacer cosas con aFile ...
Next
End Sub
#End Region
End Class
【问题讨论】:
-
您到底想达到什么目的?代码看起来很乱,可能是因为它是通过大量的代码 sn-ps 和 SO 答案拼凑在一起的,而对一切工作原理没有深入了解。
-
你好,是的,我是初学者,我知道如何制作一个 BASIC 后台工作人员,但我需要在一个后台工作人员中混合 3 个潜艇,我迷路了,谢谢你的评论......
-
感谢您是新手,但您正试图以一种糟糕的方式“学习”。如果你花几周时间读一本像样的书,你就不会遇到所有这些问题。
标签: vb.net multithreading visual-studio backgroundworker