|
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading;
namespace WindowsApplication11 { public delegate void love(string txt); public partial class Form1 : Form { private AsyncCallback callback;
public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { callback = new AsyncCallback(m); }
private void button1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); string addr = textBox1.Text; object state = new object(); Dns.BeginGetHostEntry(addr, callback, state); } private void m(IAsyncResult ar) { IPHostEntry ipHost = Dns.EndGetHostEntry(ar); foreach (IPAddress ip in ipHost.AddressList) { if (this.listBox1.InvokeRequired) { love set = new love(write); this.Invoke(set, new object[] { ip.ToString() }); } else { listBox1.Items.Add(ip.ToString()); } } } private void write(string txt) { listBox1.Items.Add(txt); } } }
异步,跨线程,非阻塞,DNS,Socket_Ajax教程_www.it958.cn |