簡體   English   中英

找不到任務內創建的目錄和文件

[英]Can't find directory and files created inside task

var tasks = new List<Task>();
var path=@"D:\path";

for(int i=0;i<8;i++)
{
    var task = Task.Factory.StartNew(() => {
    DataSet dataset;

    //Some xml work to fill dataset...

    if(!Directory.Exists(path))
        Directory.Create(path);

    dataset.WriteXml(Path.Combine(path, "filename.xml");

    });
    tasks.Add(task);

}

while(tasks.Count>0)
{
    int i = Task.WaitAny(tasks.ToArray());
    tasks.RemoveAt(i);

    string[] files;
    files = Directory.GetFiles(path);
}

我們正在嘗試為每個任務完成工作后獲取文件。 但是問題是,當代碼涉及Directory.GetFiles()方法時,它找不到相關的路徑(拋出DirectoryNotFound異常)。 但是,當我們手動查看路徑時,會出現一個包含xml文件的文件夾。 有時代碼可以找到目錄,但是即使文件夾中有文件,也不返回文件。 這種情況一直持續到任務計數為零為止。

我也嘗試了Task.ContinueWith,但仍未解決。 它看起來像同步問題,因為在調試代碼時可以正常工作。 Task.WaitAny是否不等待任務完成?

我們正在使用.NET 4.0。

您在路徑中缺少反斜杠,因此在連接時要寫到

@"D:\path" + "filename.xml"

這是

@"D:\pathfilename.xml"

並不是

@"D:\path\filename.xml"

與那里的任務無關:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM