프로그래밍을 처음 사용하기 때문에 SendAsync 메서드로 시작된 스레드를 디버깅하기 위해 검색 대상을 찾거나 찾을 수 없습니다. 코드는 Send Method를 사용하여 잘 작동하지만 SendAsync를 사용하면 waiter.WaitOne()으로 이동하지만 myPing_PingCompleted에 콜백을받지 않습니다. 그래서 두 가지 질문은 새로운 스레드를 시작할 때 코드를 디버깅하는 방법입니다. 내가 VS로 모든 디버깅 도구를 가지고 있지 않을 수도 있습니다 C# Express를 사용하고 있습니다. 그리고 내가 코드에서 잘못 가고있는 어떤 생각이든. 감사Ping 클래스 SendAsync 도움말
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Net.NetworkInformation;
using System.Threading;
using System.Net;
private void btnPingAsync_Click(object sender, EventArgs e)
{
string bIP = txtStartIP.Text;
string eIP = txtEndIP.Text;
int timeOut;
int cnt = 0;
if (eIP == null) eIP = bIP;
Ping myPing = new Ping();
PingOptions parmPing = new PingOptions();
AutoResetEvent waiter = new AutoResetEvent(false);
myPing.PingCompleted +=new PingCompletedEventHandler(myPing_PingCompleted);
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] dataBuffer = Encoding.ASCII.GetBytes(data);
if (!int.TryParse(txtTimeOut.Text, out timeOut)) timeOut = 120;
parmPing.DontFragment = true;
parmPing.Ttl = 32;
pbQueueStatus.Minimum = 0;
pbQueueStatus.Step = 10;
pbQueueStatus.Value = 0;
pbQueueStatus.Style = ProgressBarStyle.Continuous;
if (verify.ValidIPAddress(bIP) && verify.ValidIPAddress(eIP))
{
IPQueue = build.IPAddressQueue(bIP, eIP);
pbQueueStatus.Maximum = IPQueue.Count;
pbQueueStatus.TopLevelControl.UseWaitCursor= true;
pbQueueStatus.Visible = true;
while (IPQueue.Count > 0)
{
myPing.SendAsync(IPQueue.Dequeue(), timeOut, dataBuffer, parmPing, waiter);
waiter.WaitOne();
if (++cnt > 10)
{
pbQueueStatus.PerformStep();
cnt = 0;
}
}
}
}
private void myPing_PingCompleted(Object sender, PingCompletedEventArgs e)
{
PingReply reply = e.Reply;
((AutoResetEvent)e.UserState).Set();
if (reply .Status == IPStatus .Success)
{
dosomething;
}
이상한, 나는 또한 실패한 온라인 도움말에서 예제를 복사했습니다. http://msdn.microsoft.com/en-us/library/ms144962.aspx –
Ping 클래스에 대한 msdn 온라인 도움말은 무엇입니까? 내 가이드로 사용했습니다. – DicksGarage