백그라운드 작업자와 값을 전달하고 있습니다.VB MyParameters 클래스가 중지 된 것처럼 보임
Class MyParameters
Friend _QueryStr As String
Friend _Value_CreatedDate As Object
Friend _AccountID As Object
Friend _Last_Login As Object
Friend _Motto As Object
Friend _Bio As Object
Friend _pFavourite_Game As Object
Friend _pFacebookLink As Object
Friend _pInstagram As Object
Friend _pTwitterLink As Object
Friend _pTumblerLink As Object
Friend _pYoutubeLink As Object
Friend _lblpYoutubeLink As String
Friend _lblpTumblerLink As String
Friend _lblpTwitterLink As String
Friend _lblpInstagram As String
Friend _lblFacebookLink As String
Friend _lblpFavourite_Game As String
Friend _lblBio As String
Friend _lblMotto As String
Friend _lblLast_Login As String
Friend _AccessCode As String
Friend _TargetUGPoints As String
Friend _Stream As New MemoryStream()
Friend _Image As Byte()
Friend _DoB_Value As Object
Friend _DoB As Date
Friend _Years As Integer
Friend _Months As Integer
Friend _Cautions_Value As Integer
Friend _Cautions As Integer
Friend _Bitmap As New Bitmap(_Stream)
Friend _Con As New SqlConnection("Data Source =" & My.Settings.ServerIP & ";Initial Catalog=Atlas;Integrated Security=False;User=" & My.Settings.UserName & ";Password=leaders132;")
Friend _MyCMD As New SqlCommand(_QueryStr, _Con)
End Class
내가 폼로드 이벤트에서이 같은 배경 노동자를 호출하고 있습니다 :
Private Sub cdb_ProfileViewer_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Loadinglbl.Visible = True
SpinningProgress1.Visible = True
MsgBox("Starting MyParamters")
Dim m As New MyParameters
MsgBox("My Parameters set to m")
bw.RunWorkerAsync(m)
End Sub
그러나, 응용 프로그램이 아무튼 나는 변수를 저장하기 위해 다음과 같은 클래스를 사용하고이 작업을 수행하려면 배경 작업자에게 접근하는 것 같아. 얼거나 오류가 없으며 단순히 아무 것도하지 않습니다. 나는 배경 작업자가 일하는 것처럼 폼을 통제하고 있지만, msgbox를 실행하지 않기 때문에 시작하지 않는다고 생각합니다. 예를 들어, 어떤 코드 단계에 도달했는지 알려주기 위해 Msgbox
을 코드에 포함 시켰습니다. 내가 을Dim m as New Parameter
, 앞에 두었지 만 다음에 없으면 작동합니다.
Private Sub bw_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
Dim m As MyParameters = DirectCast(e.Result, MyParameters) 'Convert the generic Object back into a MyParameters object
MsgBox("Reached Worker Complete")
'Called when the BackgroundWorker is completed.
end sub
내 BW 공공 클래스 코드 :
또한 코드없이,Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim m As MyParameters = DirectCast(e.Argument, MyParameters) 'Convert the generic Object back into a MyParameters object
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
e.Result = m
'Do some time-consuming work on this thread
end sub
내 WorkerCompleted 이벤트 : 그것은 lenthy의로
내 배경 노동자, 내 코드를 생략 한주의
Private bw As BackgroundWorker = New BackgroundWorker
Private Delegate Sub ButtonClick(ByVal sender As Object, ByVal e As EventArgs)
그리고 BW를 담당하는 Public Sub :
Public Sub New()
InitializeComponent()
bw.WorkerReportsProgress = False
bw.WorkerSupportsCancellation = False
AddHandler bw.DoWork, AddressOf bw_DoWork
AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
End Sub
점프할만한 것이 있습니까? 내가 말했듯이, 나는 내 Class MyParamters
에 뭔가 있다고 느낍니다.
해당 클래스에는 여러 개의 불법 필드가 있습니다 (그리고 그 중 일부는 전혀 좋지 않습니다). 예를 들어, 비트 맵과 SQLCommand가 throw되고 예외가 발생합니다. FormLoad에서 이런 일이 발생하면 그 사실을 알 수 없습니다. – Plutonix