-5

では、このプログラムを実行するだけのコンピュータのパワーが 500 であるとしましょう。実行すると 450 に下がります。プログラムを閉じると 500 に戻りますか? コード:

bool shouldCheck = true;
    string word = "hndxgfhesufyhsukj";
    string name = "NAME OF PROGRAM HERE";
    bool updates = false;

    private void button1_Click(object sender, EventArgs e)
    {
        if (shouldCheck == true)
        {
            var url = "MYURL";
            var client = new WebClient();
            using (var stream = client.OpenRead(url))
            using (var reader = new StreamReader(stream))
            {
                string downloadedString;
                while ((downloadedString = reader.ReadLine()) != null)
                {
                    if (downloadedString == word)
                    {
                        updates = true;
                        this.Hide();
                        Form1 form2 = new Form1();
                        form2.Show();
                        MessageBox.Show("There's no updates, and the full program has opened! Enjoy!", name, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        client.Dispose();
                    }
                    else
                    {
                        MessageBox.Show("There is an update! Downloading now!", name, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        url = "MYURL";
                        var web = new WebBrowser();
                        web.Navigate(url);
                    }
                }
            }
        }
    }

これは正常に実行されますが、プログラムが終了した後にパフォーマンスが低下することはありますか? 閉じるとは、更新がチェックされ、新しいフォームが開かれ、赤い X ボタンを使用して閉じられたことを意味します。

4

3 に答える 3

2

答えはイエスです、それはフルパワーに戻るべきです。タスクマネージャをチェックインして、プログラムが正しく終了したことを確認できます。それがなくなった場合、マシンのパフォーマンスに影響を与え続けることは難しいでしょう。注意する必要があるのは、フォームが閉じていても、アプリケーションがバックグラウンドで実行されている場合です。そうである場合は、タスクマネージャに一覧表示されます。

于 2012-09-06T22:49:21.270 に答える
1

スレッドを作成する場合は、必ずそれらをバックグラウンド スレッドとして設定してください。そうすれば、手動で閉じるのを忘れた場合、プログラムが終了すると終了します。そうしないと、プログラムは実行され続けます。

http://msdn.microsoft.com/en-us/library/system.threading.thread.isbackground.aspx

また、すべてのリソースが正しく解放されるように、開始したスレッドを正しく (そして適切に) 停止する必要があります。

于 2012-09-07T01:13:03.067 に答える
0

スレッドを使用している場合は、クローズ関数またはスレッド自体にスレッドストップを追加して、クローズを探してそれ自体を終了する必要があります。スレッドの1つが適切に閉じず、再起動するまでコンピューターからリソースを吸い込んでいるという問題が発生しました。

于 2012-09-07T00:55:10.710 に答える