それで、36時間の調査とチェックの後、私はそれを手に入れました.
VS2012 は、「プロセスがページをロックした」BSOD の後の原因です。
ネットワーク上のアクティブな IP を取得するためにスレッドを開こうとしました (C# を使用)。どうやら、スレッドがアクティブなときに「停止」ボタンを押すと、ウィンドウがクラッシュします。
これはスレッドコードです:
private void Button_Click_2(object sender, RoutedEventArgs e)
{
var thread = new Thread(() => TryToConnect(targetsList));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
}
private static void TryToConnect(ListBox targetsList)
{
for (int i = 1; i < 3; i++)
{
Uri url = new Uri("http://192.168.1." + i.ToString());
string pingurl = string.Format("{0}", url.Host);
string host = pingurl;
Ping p = new Ping();
try
{
PingReply reply = p.Send(host, 3000);
if (reply.Status == IPStatus.Success)
{
ListBoxItem item = new ListBoxItem();
item.Content = "192.168.1." + i.ToString();
targetsList.Items.Add(item);
targetsList.Items.Refresh();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
// Thread.Sleep(10);
}
}
ご覧のとおり、スレッドは Ping を 255 回使用しているため、完了するまでに時間がかかります。停止ボタンを押すと、明らかに VS2012 デバッグ プロセスによって Windows がクラッシュします。試すたびに、Windows がクラッシュしました。(私のOS: Win7 64Bit) これでよろしいですか? そうでない場合、修正可能ですか?