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*/ }

私の問題は、アプリを終了すると、生き続けるスレッドがあることです。アプリを終了するときにすべてのスレッドを強制終了したい。

アプリをデバッグしてスレッドを見ると、次の情報が得られます。 ここに画像の説明を入力

この図では、最後の 2 つのスレッドが Start() メソッドによってスローされていることを確認できます。終了ボタンをクリックすると、もう一度チェックすると、まだ生きているスレッドは 2 つだけです。 ここに画像の説明を入力

これらのスレッドが生きている理由がわかりません。

この動作を回避する方法を知りたいです。

助けてくれてありがとう!

4

0 に答える 0