[英]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.