private void button1_Click(object sender, RoutedEventArgs e) { String fileName = this.textBox1.Text; String hostString = Dns.GetHostName(); IPHostEntry hostinfo = Dns.GetHostEntry(hostString); System.Net.IPAddress[] addresses = hostinfo.AddressList; List <Thread> threads = new List <Thread>(); List <FileDiggerUtil> diggerUtils = new List <FileDiggerUtil>(); foreach (IPAddress address in addresses) { if (!address.IsIPv6LinkLocal) { String localIp = address.ToString(); localIp = localIp.Substring(0, localIp.LastIndexOf(".") + 1); string[] peerIps = localClient.findPeers(); foreach (string peerIp in peerIps) { String ip = peerIp; FileDiggerUtil util = new FileDiggerUtil(); diggerUtils.Add(util); util.Ip = ip; util.FileName = this.textBox1.Text; ThreadStart ts = new ThreadStart(util.digFiles); Thread t = new Thread(ts); t.Start(); threads.Add(t); } foreach (Thread t in threads) { t.Join(); } break; } } foreach (FileDiggerUtil util in diggerUtils) { if (util.Files != null) { foreach (String f in util.Files) { this.搜到的文件.Items.Add(util.Ip + "--" + f); } } } }
private void button1_Click(object sender, RoutedEventArgs e) { String fileName=this.textBox1.Text; String hostString=Dns.GetHostName(); IPHostEntry hostinfo = Dns.GetHostEntry(hostString); System.Net.IPAddress[] addresses = hostinfo.AddressList; List<Thread> threads = new List<Thread>(); List<FileDiggerUtil> diggerUtils = new List<FileDiggerUtil>(); foreach(IPAddress address in addresses) { if (!address.IsIPv6LinkLocal) { String localIp = address.ToString(); localIp=localIp.Substring(0,localIp.LastIndexOf(".")+1); string[] peerIps=localClient.findPeers(); foreach (string peerIp in peerIps) { String ip = peerIp; FileDiggerUtil util = new FileDiggerUtil(); diggerUtils.Add(util); util.Ip = ip; util.FileName = this.textBox1.Text; ThreadStart ts = new ThreadStart(util.digFiles); Thread t = new Thread(ts); t.Start(); threads.Add(t); } foreach(Thread t in threads){ t.Join(); } break; } } foreach(FileDiggerUtil util in diggerUtils){ if (util.Files != null) { foreach(String f in util.Files) { this.搜到的文件.Items.Add(util.Ip + "--" + f); } } } }