1
''//begin cross threaded component
Private Sub dBgRIDvIEWNotInvokeRequired(ByVal dBGridViewcomponentname As DataGridView, ByVal dvalue As String)
dBGridViewcomponentname.Text = dvalue
dBGridViewcomponentname.Update()
End Sub
Private Delegate Sub deldBGrridView(ByVal dBGridViewcomponentname As DataGridView, ByVal dvalue As String)
Private Sub ThreadedDbGridViewAddress(ByVal dBGridViewcomponentname As DataGridView, ByVal dvalue As String)
Try
If InvokeRequired Then
Dim udd As New deldBGrridView(AddressOf ThreadedDbGridViewAddress)
Invoke(udd, New Object() {dBGridViewcomponentname, dvalue})
Else
dBgRIDvIEWNotInvokeRequired(dBGridViewcomponentname, dvalue)
End If
Catch ex As Exception
End Try
End Sub
Private CrossThreadedDbGridView As New deldBGrridView(AddressOf ThreadedDbGridViewAddress)
''//end cross threaded component
wenn verwendet wird, ist wie diese CrossThreadedDbGridView (DataGridView1 "TheText")vb.net generali Faden sicher Windows.Form
Aber was, wenn ich habe viele Mitglied oder Eigentum wie diesen Code zu verwenden:
DbGridPapers.ColumnCount = 5
DbGridPapers.RowCount = rc
DbGridPapers.Update()
DbGridPapers.Columns(0).HeaderText = "PaperSize"
DbGridPapers.Columns(1).HeaderText = "#of_Pages"
DbGridPapers.Columns(2).HeaderText = "#of_Images"
DbGridPapers.Columns(3).HeaderText = "Payable"
DbGridPapers.Columns(4).HeaderText = "CountedImage"
DbGridPapers.Update()
DbGridPapers.Rows(rc).HeaderCell.Value = FileName
DbGridPapers.Rows(rc).Cells(0).Value = xpapersize
DbGridPapers.Rows(rc).Cells(1).Value = xpNumbers
DbGridPapers.Rows(rc).Cells(2).Value = xiNumbers
DbGridPapers.Rows(rc).Cells(3).Value = xTotImageCounts
DbGridPapers.Rows(rc).Cells(4).Value = xTotImageCounts
DbGridPapers.Update()
Was soll ich tun, um dies einfach und in der Regel einen schönen Thread zu machen e-Komponente
Irgendwelche Ideen? dass ich sie so nennen:
CrossThreadedDbGridView(DataGridView1.ColumnCount, 5)
CrossThreadedDbGridView(DataGridView1.RowCount, rc)
CrossThreadedDbGridView(DataGridView1.Columns(0).HeaderText, "PaperSize")
...
...
Oder gibt es einen besseren Weg, dies zu tun
ich das Problem gelöst haben, dank Stackoverflow – XenKid
Dann sollten Sie Ihre eigene Frage beantworten, so dass der Rest von der Welt kann profitieren. –