1

我的应用程序嵌入了 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() 方法是否抛出了最后两个线程。当我单击退出按钮时,我再次检查,两个线程是唯一还活着的线程: 在此处输入图像描述

我不明白为什么这些线程还活着。

我想知道如何避免这种行为。

谢谢你的帮助!

4

0 回答 0