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 つだけです。
これらのスレッドが生きている理由がわかりません。
この動作を回避する方法を知りたいです。
助けてくれてありがとう!