2013-08-25 18 views
1

我有一個數據網格視圖與鏈接到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文件)的目錄,現在可以選擇所有的他們並按回車。應該是什麼? 而我使用sleep沒有其他任何xml在新窗口中打開,而不是在新標籤中。

+2

在嘗試回答你的問題之前,我有以下問題:1)你想達到什麼目的? 2)你爲什麼認爲你需要Thread.Sleep? – Tarik

+0

簡單,0的睡眠時間,不使用它 – Sayse

+0

@Tarik:我嘗試爲用戶提供安全。例如,如果用戶選擇所有數據網格視圖(大約700行)並選擇打開XML文件,則可能需要很長時間,甚至卡住計算機,只需重新啓動就會「幫助」他 - 這是我想要阻止的。關於睡眠,我真的不知道我是否需要它.. – AsfK

回答

2

這篇文章可以幫助回答你的問題: http://blogs.technet.com/b/markrussinovich/archive/2009/09/29/3283844.aspx

這些都是極端的數字,它可能在你的情況下是可行的。你將不得不使用判斷或者簡單地進行實驗,然後設定一個保守的限制,即在普通計算機上可以處理的五分之一。

+0

謝謝!我會讀它。無論如何它真的很好看! – AsfK