-1
내 backgroundWorker doWork
의 이벤트에는 실행할 코드가 많습니다. 각 코드를 실행 한 후에 레이블 텍스트를 변경할 수 있습니까?BackGroundWorker DoWork에서 레이블 텍스트 변경 WPF VB.NET
Dim con As New SqlConnection("Data source=" & My.Settings.ip & "," & My.Settings.port & ";Network Library=DBMSSOCN;initial catalog=offpodb;User id=" & My.Settings.username & ";Password=" & My.Settings.password & ";")
con.Open()
If connected.Dispatcher.CheckAccess Then
connected.Content = "text"
Else
' i dunno what to use here as it is not the same as WinForms
End If
무엇을 할 : 예를 들어
?
또는
당신은 DoWork
방식의 사용자 인터페이스를 업데이트 안 나 WPF VB.NET
Label1.Invoke((MethodInvoker)delegate {
Label1.Text = i.ToString() + "Files Converted";});
글쎄, 각 작업이'DoWork' 이벤트에서 완료된 후에 라벨 텍스트를 변경하고 싶다면'ReportProgress'를 어떻게 사용해야합니까? 내가 언급했듯이, 나의 bgworker는 많은 작업을 가지고 있으며 나는 각 작업 후에 레이블 텍스트를 바꾸고 싶습니다. 어떻게해야합니까? –
각 작업이 완료되면 'ReportProgress'를 호출합니다. 인수는 진행률 및 임의의 사용자 상태입니다. 아무거나 전달할 수 있습니다 (예 : 0으로 설정하고 % ProgressChanged 이벤트 핸들러에서 무시합니다. 사용자 상태는 무엇이든 될 수 있습니다. 귀하의 경우에는'Label'에 표시 할 텍스트를 전달하는 것이 좋습니다. 'ProgressChanged' 이벤트 핸들러에서,'String'을 얻고 이것을'Label'의'Text'에 할당하면됩니다. – jmcilhinney
내 예제 [here] (http://www.vbforums.com/showthread.php?471889-Using-the-BackgroundWorker-Component)를 확인하십시오. 'String'이 전달되고 사용될 수있는 방법을 볼 수 있습니다. 루프 대신에 매번 다른 텍스트를 가진'ReportProgress'에 대한 여러개의 개별 호출이 있습니다. – jmcilhinney