【问题标题】:How can I know how much files I can open without stuck the computer我怎么知道我可以打开多少文件而不卡在电脑上
【发布时间】:2013-08-25 09:56:28
【问题描述】:

我有一个数据网格视图,其中包含指向 xml 文件的链接,并且我为用户提供了在 IE 中打开它们的选项。 我的问题是我如何知道计算机可以打开多少文件而不会崩溃\卡住(显示警告消息框)。 另外,我怎么知道我需要多少睡眠时间?

我的代码:

if (dg_autoTestStatus.SelectedRows.Count >= MaxFilesCanOpen(/* How to implement this function */))
{
    DialogResult dr = MessageBox.Show("Your computer should crash from opening too much files at same time.\n"
                    + "Are you want to continue ?", "Warning",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

    if (dr == DialogResult.No) return;
}

string pathXMLfile = "";
foreach (DataGridViewRow dgvItem in dg_autoTestStatus.SelectedRows)
{
    pathXMLfile += "\\" + dg_logs.Rows[dgvItem.Index].Cells[1].FormattedValue.ToString();
    pathXMLfile += "\\" + dg_logs.Rows[dgvItem.Index].Cells[7].FormattedValue.ToString();
    openXMLfile(pathXMLfile);
    Thread.Sleep(500); // how can I know how much sleep I need ?!?
}

编辑:

也许我的看法是错误的,但是如果您有一个包含 300 个单词文件(doc 文件)的目录,现在您选择所有这些文件并按 Enter。应该是什么? 我使用睡眠,因为没有在新窗口中打开任何 xml,而不是在新标签中。

【问题讨论】:

  • 在尝试回答您的问题之前,我有以下问题: 1) 您想要达到什么目的? 2) 为什么你认为你需要 Thread.Sleep?
  • 简单,0睡眠时间,不要使用它
  • @Tarik:我尝试为用户提供安全保障。例如,如果用户选择所有数据网格视图(大约 700 行)并选择打开 XML 文件,这可能会花费很多时间,或者甚至卡住计算机并重新启动将“帮助”他 - 这是我想要防止.关于睡眠,我真的不知道我是否需要它..
  • 例如,从使用的角度来看,一次打开 50 个文件对用户来说是否实用?设身处地为用户着想,这对你是否有意义,是否合理?如果你能回答这个问题并且文件数量足够少,那么只需硬编码一个限制。
  • 一次打开​​所有文件的目的是什么?无论如何,用户一次只会看一个罚款,对吗?为什么不一一打开?

标签: c# file memory


【解决方案1】:

本文可能有助于回答您的问题: http://blogs.technet.com/b/markrussinovich/archive/2009/09/29/3283844.aspx

这些是极端数字,在您的情况下可能不实用。您将不得不做出判断,或者只是进行实验,然后将保守的限制设置为您可以在普通计算机上处​​理的五分之一。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 2015-12-31
    相关资源
    最近更新 更多