C# 为什么任务比任务快
我有存档文件的函数,所以我尝试创建它的异步版本。 但由于某种原因,若我将函数的返回类型从一个任务更改为另一个任务,它的运行速度会快得多 下面是实现的两个版本C# 为什么任务比任务快,c#,.net,async-await,.net-4.5,C#,.net,Async Await,.net 4.5,我有存档文件的函数,所以我尝试创建它的异步版本。 但由于某种原因,若我将函数的返回类型从一个任务更改为另一个任务,它的运行速度会快得多 下面是实现的两个版本 public Task<bool> PsiZipFilesAsync(string zipFileName_, string[] listOfFiles_) { Task.Run(() => { using (ZipArchive zip = new Zi
public Task<bool> PsiZipFilesAsync(string zipFileName_, string[] listOfFiles_)
{
Task.Run(() =>
{
using (ZipArchive zip = new ZipArchive())
{
//zip.Password = pass;
zip.EncryptionType = EncryptionType.PkZip;
zip.AddFiles(listOfFiles_);
zip.Save(zipFileName_);
}
});
return Task.FromResult(true);
}
public Task PsiZipFilesAsync2(string zipFileName_, string[] listOfFiles_)
{
return Task.Run(() =>
{
using (ZipArchive zip = new ZipArchive())
{
//zip.Password = pass;
zip.EncryptionType = EncryptionType.PkZip;
zip.AddFiles(listOfFiles_);
zip.Save(zipFileName_);
}
});
}
对相同的文件进行压缩的时间差别很大
00:00:00.0049702-任务一个问题是,在Task
public Task<bool> PsiZipFilesAsync(string zipFileName_, string[] listOfFiles_)
{
return Task.Run(() =>
{
using (ZipArchive zip = new ZipArchive())
{
//zip.Password = pass;
zip.EncryptionType = EncryptionType.PkZip;
zip.AddFiles(listOfFiles_);
zip.Save(zipFileName_);
}
return true;
});
}
你是如何计算这些业绩数字的?我在您的示例中没有看到任何这样的代码,几乎可以肯定的是,您看到差异的原因是您没有编写正确的计时代码。我使用的是秒表
public Task<bool> PsiZipFilesAsync(string zipFileName_, string[] listOfFiles_)
{
return Task.Run(() =>
{
using (ZipArchive zip = new ZipArchive())
{
//zip.Password = pass;
zip.EncryptionType = EncryptionType.PkZip;
zip.AddFiles(listOfFiles_);
zip.Save(zipFileName_);
}
return true;
});
}