Mensaje dentro de Foro VB.NET

Responder 
#1 - 09/03/2011 18:35:02 Reporta abuso | Link Permanente
rafito_82
Usuario no registrado
Problemas con hilos o subprocesos, no mellena el GRID

Responder Citar
        Necesitaria saber como puedo llenar un Gridview con multihilos, he
tratado con backgroungworker, y con Threading pero no he podido llenar
el Grid,
Abajo el código, necesitaría si es posible la respuesta lo mas urgente posible.
Saludos

Imports System.Threading
Private Sub CargarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
CargarToolStripMenuItem.Click
       CheckForIllegalCrossThreadCalls = False
       'Me.BW1.
       If idiom = 1 Then
           ToolStripStatusLabel1.Text = "Cargando"
       Else
           ToolStripStatusLabel1.Text = "Loading"
       End If
       'leerarchivodatagrid()
       trd = New Thread(AddressOf ThreadTask)
       trd.IsBackground = True
       trd.Start()
       textfile.MdiParent = Me
       textfile.Show()

   End Sub
-----------------------------------------------------------------------------------------------------------------------------------
Private Sub ThreadTask()
       '----- Nombre fichero -----------------
       openname = ""
       openname = ListView1.FocusedItem.Text
       If openname = "" Then
           Exit Sub
       End If
       '---------------------------------------
       Dim TextLine As String = ""
       Dim SplitLine() As String
       Dim aq, bq As Integer
       Me.ToolStripStatusLabel3.Visible = True
       Dim objReader As New System.IO.StreamReader(openname)
       If idiom = 1 Then
           Me.ToolStripStatusLabel3.Text = "Cargando"
       Else
           Me.ToolStripStatusLabel3.Text = "Loading"
       End If
       Me.ToolStripStatusLabel3.Visible = True
       Me.Barra1.Visible = True
       Me.Barra1.ProgressBar.Minimum = 0
       Do While objReader.Peek() <> -1
           aq = aq + 1
           NDAT = aq
           TextLine = objReader.ReadLine()
           SplitLine = Split(TextLine, ",")
           If aq = 1 Then
               tempo = TextLine.Split(Convert.ToChar(","))
               cantdevar = tempo.Length
               For bq = 0 To SplitLine.Length - 1

textfile.DataGridView1.Columns.Add(SplitLine.Length,
SplitLine(bq).ToUpper)
               Next
           Else
               textfile.DataGridView1.Rows.Add(SplitLine)
           End If
           'textfile.DataGridView1.Rows.Add(SplitLine)
           Me.Barra1.Value = aq * 100 / cvb
           Me.Barra1.ToolTipText = Me.Barra1.Value
           ToolStripStatusLabel3.Text = Me.Barra1.Value & " % "
           textfile.DataGridView1.Update()
       Loop

       For i = 0 To tempo.Length - 1
           'Clases.ComboBox2.Items.Add(i)
           Seleccionarvariables.ListView1.Items.Add(tempo(i).ToUpper)
           indicador.ComboBox1.Items.Insert(i, tempo(i).ToUpper)
           Clases.ComboBox2.Items.Insert(i, tempo(i).ToUpper)
           log.ComboBox1.Items.Insert(i, tempo(i).ToUpper)
           VariablesQQ.ComboBox1.Items.Insert(i, tempo(i).ToUpper)
           VariablesQQ.ComboBox2.Items.Insert(i, tempo(i).ToUpper)
           Gauss.ComboBox1.Items.Insert(i, tempo(i).ToUpper)
       Next i

       Me.EstadisticaToolStripMenuItem.Enabled = True
       Me.VariografíaToolStripMenuItem.Enabled = True
       Me.KrigingToolStripMenuItem.Enabled = True
       Me.MostrarMapaToolStripMenuItem.Enabled = True
       Me.ProcesamientoToolStripMenuItem.Enabled = True
       Me.ValidacionDeDatosToolStripMenuItem.Enabled = True
       Me.estimacionlocal.Enabled = True
       Me.Barra1.Visible = False
       Erase SplitLine

   End Sub
Volver arriba