我正在使用任務來執行一些過程。任務將在一個循環中,我不確定有多少任務/迭代將在那裏。它會隨時間變化。如何使用任務?以下是我的代碼。雖然使用任務[]對象引用未設置爲對象的實例
void func1(string loc)
{
var CurrentDirectoryInfo = new DirectoryInfo(loc);
Task[] tasks; // null
int index = 0;
foreach (DirectoryInfo D1 in CurrentDirectoryInfo.GetDirectories)
{
tasks[index] = Task.Factory.StartNew(() =>func1(d1.FullName));
index++;
}
如果我使用空爲Task[] tasks
,我得到Object reference not set to an instance of an object
錯誤。
如果我將其未分配,我得到Use of unassigned variable
錯誤。
這是非常非常糟糕的代碼。您應該重新訪問您對「StartNew」的瞭解,並決定是否需要爲每個目錄/子目錄創建單獨的任務。機會是......你沒有(你的電腦有多少核心?)。 –
如果'tasks'是任何其他數據類型,並且您試圖訪問實例方法/屬性,您將如何解決該問題? –
此問題的根源與任務無關,因此應該重新命名並重新標記。 –