我的应用程序嵌入了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()方法是否抛出最后两个线程。 当我单击退出按钮时,我再次检查并且两个线程是唯一仍然存活的线程:
我不明白为什么这些线程还活着。
我想知道如何避免这种行为。
感谢您的帮助!