C# 我如何知道我可以打开多少文件而不卡住电脑
我有一个数据网格视图,其中包含指向xml文件的链接,我为用户提供了在IE中打开这些文件的选项。 我的问题是如何知道计算机可以打开多少文件而不会崩溃\卡住(显示警告消息框)。 另外,我如何知道我需要多少睡眠时间 我的代码:C# 我如何知道我可以打开多少文件而不卡住电脑,c#,file,memory,C#,File,Memory,我有一个数据网格视图,其中包含指向xml文件的链接,我为用户提供了在IE中打开这些文件的选项。 我的问题是如何知道计算机可以打开多少文件而不会崩溃\卡住(显示警告消息框)。 另外,我如何知道我需要多少睡眠时间 我的代码: if (dg_autoTestStatus.SelectedRows.Count >= MaxFilesCanOpen(/* How to implement this function */)) { DialogResult dr = MessageBox.Sh
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键。应该是什么?
我使用sleep是因为没有任何xml在新窗口中打开,而不是在新选项卡中打开。本文可能有助于回答您的问题:
这些是极端的数字,在您的情况下可能不实用。你必须使用判断或者简单的实验,然后设定一个保守的极限,即你在普通电脑上能处理的东西的五分之一。在试图回答你的问题之前,我有以下问题:1)你想实现什么?2) 为什么你认为你需要线程。睡眠?简单,0睡眠时间,不要使用it@Tarik:我试图为用户提供安全。例如,如果用户选择“所有数据网格视图”(大约700行)并选择打开XML文件,则可能会花费大量时间,甚至会卡住计算机,只需重新启动就可以“帮助”他-这是我想要阻止的。关于睡眠,我真的不知道我是否需要它。作为一个例子,从使用的角度来看,用户一次打开50个文件是否可行?设身处地为用户着想,这对你来说是否有意义,是否合理?如果你能回答这个问题,并且文件的数量足够少,那么只需硬编码一个限制。一次打开所有文件的目的是什么?不管怎样,用户一次只能看到一个罚款,对吗?为什么不一个一个打开呢?