我的应用程序嵌入了 Windows(CompactFramework)时遇到问题。我需要连接到互联网,所以我向互联网发出虚拟请求以激活连接。
我将此代码用于该任务:
WebRequest request = null;
HttpWebResponse response = null;
try
{
// Create a request for the URL.
request = WebRequest.Create("http://www.contoso.com/default.html");
request.Credentials = CredentialCache.DefaultCredentials;
// Get the response.
request.Timeout = 10000;
response = (HttpWebResponse)request.GetResponse();
if ("OK".Equals(response.StatusDescription))
res = true;
else { /** Message **/ }
}
catch (WebException) { /*Message*/ }
catch (Exception e) {/*Message*/}
finally
{
if (response != null) response.Close();
if (request != null) request.Abort();
}
try
{
if (response != null) response.Close();
}
catch (Exception e) { /*Message*/ }
try
{
if (request != null) request.Abort();
}
catch (Exception e) { /*Message*/ }
我的问题是,当我退出我的应用程序时,有一些线程保持活动状态。我想在退出应用程序时杀死所有线程。
当我调试我的应用程序并查看线程时,我会得到以下信息:
在图片中,您可以检查 Start() 方法是否抛出了最后两个线程。当我单击退出按钮时,我再次检查,两个线程是唯一还活着的线程:
我不明白为什么这些线程还活着。
我想知道如何避免这种行为。
谢谢你的帮助!