DUVIDA ITENS NEW LIST
Pessoal boa tarde,
Alguém poderia dar uma luz, é o seguinte:
Os códigos abaixo, o primeiro está funcionando o segundo é o que eu fiz a alteração.
No primeiro código, eu faço um looping, pingando computadores e gravando em uma lista o rowindex, depois eu pelo rowindex eu seto se está online e offline.
A minha dúvida é o seguinte como eu posso alterar o código para salvar o IP do computador e depois coloca-lo no gridview ?
Eu axu que tenho uma luz mas estou perdindo de como eu faço para pegar por exemplo o IP do computador depois de salvo na lista, sendo que eu tenho o rowindex.
Peguei esses códigos na net.
Private fThread As Thread
Delegate Sub CheckOnlineDelegate(ByVal rowindex As Integer)
Private success As New List(Of Integer)
[ô]ATUAL
Private Sub CheckOnline(ByVal rowindex As Integer)
Dim _ping As New Net.NetworkInformation.Ping
Try
Dim _pingreply = _ping.Send(dgvComputadoresAuditados.Rows(rowindex).Cells(0).Value.ToString, 2000)
If _pingreply.Status = IPStatus.Success Then
SyncLock sucess
sucess.Add(rowindex)
End SyncLock
End If
Catch ex As Exception
End Try
SyncLock done
done.Add(rowindex)
End SyncLock
End Sub
Private Sub ThreadProc2()
Parallel.For(0, dgvComputadoresAuditados.Rows.Count, Sub(b)
CheckOnline(b)
End Sub)
End Sub
Private Sub SetOnline(ByVal rowindex As Integer)
If Not success.Contains(rowindex) Then
dgvComputadoresAuditados.Rows(rowindex).Cells(3).Value = [Ô]Offline[Ô]
Else
dgvComputadoresAuditados.Rows(rowindex).Cells(3).Value = [Ô]Online[Ô]
End If
[ô]ALTERAÇÕES
Dim sucesIP As New Dictionary(Of String, Integer)
Private Sub CheckOnline(ByVal rowindex As Integer)
Dim _ping As New Net.NetworkInformation.Ping
Try
Dim _pingreply = _ping.Send(dgvComputadoresAuditados.Rows(rowindex).Cells(0).Value.ToString, 2000)
Dim strIPEstacao As String = System.Net.Dns.GetHostByName(dgvComputadoresAuditados.Rows(rowindex).Cells(0).Value.ToString).AddressList(0).ToString()
If _pingreply.Status = IPStatus.Success Then
SyncLock sucesIP
sucesIP.Add(strIPEstacao.ToString, rowindex)
End SyncLock
End If
Catch ex As Exception
End Try
SyncLock done
done.Add(rowindex)
End SyncLock
End Sub
Alguém poderia dar uma luz, é o seguinte:
Os códigos abaixo, o primeiro está funcionando o segundo é o que eu fiz a alteração.
No primeiro código, eu faço um looping, pingando computadores e gravando em uma lista o rowindex, depois eu pelo rowindex eu seto se está online e offline.
A minha dúvida é o seguinte como eu posso alterar o código para salvar o IP do computador e depois coloca-lo no gridview ?
Eu axu que tenho uma luz mas estou perdindo de como eu faço para pegar por exemplo o IP do computador depois de salvo na lista, sendo que eu tenho o rowindex.
Peguei esses códigos na net.
Private fThread As Thread
Delegate Sub CheckOnlineDelegate(ByVal rowindex As Integer)
Private success As New List(Of Integer)
[ô]ATUAL
Private Sub CheckOnline(ByVal rowindex As Integer)
Dim _ping As New Net.NetworkInformation.Ping
Try
Dim _pingreply = _ping.Send(dgvComputadoresAuditados.Rows(rowindex).Cells(0).Value.ToString, 2000)
If _pingreply.Status = IPStatus.Success Then
SyncLock sucess
sucess.Add(rowindex)
End SyncLock
End If
Catch ex As Exception
End Try
SyncLock done
done.Add(rowindex)
End SyncLock
End Sub
Private Sub ThreadProc2()
Parallel.For(0, dgvComputadoresAuditados.Rows.Count, Sub(b)
CheckOnline(b)
End Sub)
End Sub
Private Sub SetOnline(ByVal rowindex As Integer)
If Not success.Contains(rowindex) Then
dgvComputadoresAuditados.Rows(rowindex).Cells(3).Value = [Ô]Offline[Ô]
Else
dgvComputadoresAuditados.Rows(rowindex).Cells(3).Value = [Ô]Online[Ô]
End If
[ô]ALTERAÇÕES
Dim sucesIP As New Dictionary(Of String, Integer)
Private Sub CheckOnline(ByVal rowindex As Integer)
Dim _ping As New Net.NetworkInformation.Ping
Try
Dim _pingreply = _ping.Send(dgvComputadoresAuditados.Rows(rowindex).Cells(0).Value.ToString, 2000)
Dim strIPEstacao As String = System.Net.Dns.GetHostByName(dgvComputadoresAuditados.Rows(rowindex).Cells(0).Value.ToString).AddressList(0).ToString()
If _pingreply.Status = IPStatus.Success Then
SyncLock sucesIP
sucesIP.Add(strIPEstacao.ToString, rowindex)
End SyncLock
End If
Catch ex As Exception
End Try
SyncLock done
done.Add(rowindex)
End SyncLock
End Sub
Resolvido !
Private success As New Dictionary(Of Integer, String)
Porém preciso colocar mais um parametro e vi que com a classe Dictionary existe a limitação de campo, consigo utilizar o [Ô]Tuple[Ô] porém não consigo usar o Tuple.Contains como eu posso fazer isso ?
Private success As New Dictionary(Of Integer, String)
Porém preciso colocar mais um parametro e vi que com a classe Dictionary existe a limitação de campo, consigo utilizar o [Ô]Tuple[Ô] porém não consigo usar o Tuple.Contains como eu posso fazer isso ?
Tópico encerrado , respostas não são mais permitidas