【发布时间】:2016-06-20 09:41:14
【问题描述】:
我有一个解压缩文件夹和合并文件的应用程序,我想在这里使用异步,我想要一个线程解压缩文件夹,另一个线程合并解压缩文件夹中的文件,一旦解压缩线程完成其任务,应用程序应该等待合并线程完成。合并线程(子)依赖于解压线程(父) 下面是我正在使用的代码 在 program.cs 文件中
var t1= Task.Factory.StartNew(() =>
{
obj.UnZipFiles(files, formats);
});
在 unzip.cs 文件中
var t2= Task.Factory.StartNew(() =>
{
obj.MergeFiles();
});
在program.cs文件中,我有
Task.WaitAll(t1);
我的应用程序没有等待子线程完成, 任何帮助将不胜感激。
【问题讨论】:
-
如果步骤 2 只能在步骤 1 之后发生,则没有并发和异步。你确定你理解问题吗?听起来您是从一个不存在的问题的解决方案开始。
-
你在说什么“子线程”?顺便提一句。我们在这里处理的是
Tasks,而不是线程。 -
@usr 考虑一个例子:2 个 zip 文件夹,每个文件夹有 10 个文件,我希望应用程序完成第一个 zip 文件夹的解压缩并开始合并其中的 10 个文件,同时它应该开始解压缩第二个 zip文件夹,而应用程序正在合并第一个 zip 文件夹中的文件
-
我明白了,这更有意义。
标签: c# .net multithreading async-await console-application