【问题标题】:Will this harm system performance after the program is closed? [closed]这会在程序关闭后损害系统性能吗? [关闭]
【发布时间】:2012-09-06 22:34:19
【问题描述】:

假设一台除了运行这个程序什么都不做的计算机有 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 按钮关闭。

【问题讨论】:

  • @ByronWhitlock - 我想他担心它会超过 9000!
  • 我使用 500 功率作为参考,这样我就能明白我的意思了。没有实际的力量。
  • 您的“使用”块将正确处理您的对象,释放资源。
  • @chipperyman573:使用绝对没有意义的测量单位是没有帮助的。只需询问应用程序使用的任何资源是否会在退出时被操作系统回收。
  • @everyone - 谁在乎?也许这个可怜的家伙英语不好,我们都明白他在说什么……放手吧。

标签: c# performance


【解决方案1】:

答案是肯定的,它应该恢复全功率。您可以检查任务管理器以确保您的程序已正确关闭。如果它消失了,就很难继续对您的机器产生性能影响。您需要注意的一件事是表单是否已关闭但应用程序仍在后台运行。如果是,它将在任务管理器中列出。

【讨论】:

    【解决方案2】:

    如果您创建线程,请务必将它们设置为后台线程。这样,如果您忘记手动关闭它们,当您的程序退出时,它们将终止。否则你的程序将继续运行。

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

    您还应该正确(并且很好地)停止您启动的任何线程,以确保正确释放所有资源。

    【讨论】:

      【解决方案3】:

      如果您曾经使用线程,则必须在关闭函数或线程本身中添加线程停止以查找关闭和结束本身。不久前我遇到了一个问题,因为我的一个线程没有正确关闭并从计算机中吸取资源,直到它重新启动。

      【讨论】:

        猜你喜欢
        • 2011-10-13
        • 2011-01-11
        • 1970-01-01
        • 2011-12-29
        • 2010-12-17
        • 1970-01-01
        • 2014-06-18
        • 2015-06-04
        • 2011-02-23
        相关资源
        最近更新 更多