因此,经过 36 小时的研究和检查,我得到了它。
VS2012 是“进程已锁定页面”蓝屏后的原因。
我试图打开一个线程来获取我网络上的活动 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 都会崩溃。(我的操作系统:Win7 64Bit)我说得对吗?如果不是,它可以修复吗?