【发布时间】: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 个文件对用户来说是否实用?设身处地为用户着想,这对你是否有意义,是否合理?如果你能回答这个问题并且文件数量足够少,那么只需硬编码一个限制。
-
一次打开所有文件的目的是什么?无论如何,用户一次只会看一个罚款,对吗?为什么不一一打开?