Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我如何知道我可以打开多少文件而不卡住电脑_C#_File_Memory - Fatal编程技术网

C# 我如何知道我可以打开多少文件而不卡住电脑

C# 我如何知道我可以打开多少文件而不卡住电脑,c#,file,memory,C#,File,Memory,我有一个数据网格视图,其中包含指向xml文件的链接,我为用户提供了在IE中打开这些文件的选项。 我的问题是如何知道计算机可以打开多少文件而不会崩溃\卡住(显示警告消息框)。 另外,我如何知道我需要多少睡眠时间 我的代码: if (dg_autoTestStatus.SelectedRows.Count >= MaxFilesCanOpen(/* How to implement this function */)) { DialogResult dr = MessageBox.Sh

我有一个数据网格视图,其中包含指向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键。应该是什么?
我使用sleep是因为没有任何xml在新窗口中打开,而不是在新选项卡中打开。

本文可能有助于回答您的问题:


这些是极端的数字,在您的情况下可能不实用。你必须使用判断或者简单的实验,然后设定一个保守的极限,即你在普通电脑上能处理的东西的五分之一。

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