2013-05-13 83 views
1

我有一個ListView調用lvInformation,我想只添加遠程網絡中的活動計算機。但是,如果它處於活動狀態,我會得到響應需要很長時間。我想要這個多線程,它應該將一臺計算機添加到ListView當它處於活動狀態並刷新ListView。但我不知道如何。我使用下面的代碼而這工作太,但需要多少秒......如何僅顯示列表視圖中的活動計算機?

System.Net.NetworkInformation.Ping objping = new System.Net.NetworkInformation.Ping(); 
    objping.SendAsync(_remoteComputerName, null); 

    objping.PingCompleted += new PingCompletedEventHandler(objping_PingCompleted);; 

private void objping_PingCompleted(object sender, PingCompletedEventArgs e) 
    { 
     DomainComputers.Add(_remoteComputerName); 
    } 

DomainComputers是一個屬性而這綁定雙向。

回答

1

您可以嘗試這樣的事:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    public ObservableCollection<string> DomainComputers = new ObservableCollection<string>(); 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     lvInformation.ItemsSource = DomainComputers; 

     List<string> Computers = new List<string>(); 
     for (int i = 1; i < 255; i++) 
     { 
      Computers.Add("192.168.9." + i.ToString()); 
     } 

     foreach (var comp in Computers) 
     { 
      System.Net.NetworkInformation.Ping objping = new System.Net.NetworkInformation.Ping(); 

      objping.PingCompleted += new PingCompletedEventHandler(objping_PingCompleted); 

      objping.SendAsync(comp, comp); 
     } 


    } 

    void objping_PingCompleted(object sender, PingCompletedEventArgs e) 
    { 
     if (e.Reply.Status == IPStatus.Success) 
      DomainComputers.Add(e.UserState as string); 
    } 
} 

而在XAML

<StackPanel> 
    <ListView Name="lvInformation" /> 
    <Button Click="Button_Click" Content="Start" /> 
</StackPanel> 

但把它作爲樣品。我對很多Ping對象很感興趣。在現實生活中,我將創建10個數組,並在PingCompleted事件中使用它們來ping隊列中的另一臺計算機。

+0

嗨,謝謝你的回覆。我會檢查出來.. – Jamie 2013-05-13 08:24:12

+0

我使用'ViewModel',分派器上的錯誤。 '非靜態字段,方法或屬性'System.Windows.Threading.Dispatcher.Invoke(System.Delegate,params object [])'需要對象引用'' – Jamie 2013-05-13 08:37:26

+0

刪除分派器,不需要它。我還添加了條件來檢查ping是否可以 – kurin123 2013-05-13 14:32:34

相關問題