Directory.CreateDirectory是异步还是什么?

时间:2016-09-03 05:21:30

标签: c# .net

我有以下代码为我生成的文件准备文件夹:

if (Directory.Exists(outputDir))
{
    Directory.Delete(outputDir, true);
}
Directory.CreateDirectory(outputDir);

当我正常运行时,恰好每隔一段时间运行一次,另一次它抛出一个DirectoryNotFoundException,就行了:

File.WriteAllLines(filePath, CreateRows(TestLineCount, TestSampleCount));

Could not find a part of the path 'C:\Dev\Android\Projects...filePath中的最后一个文件夹丢失了,因为我删除了它,但后来又创建了它,所以它应该始终存在。当我在Directory.CreateDirectory(outputDir);行上设置一个断点,并且有一个小延迟时,该应用程序每次都有效。如果我引入自动延迟,即:

Directory.CreateDirectory(outputDir);
Thread.Sleep(500);

每次都有效。当然所有这些调用都应该阻塞直到完成,所以outputDir总是在那里?

1 个答案:

答案 0 :(得分:0)

我认为它不是异步的,但当你这样称呼时

final Dialog dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.contact_query);
dialog.setTitle("Query Form");