gpt4 book ai didi

c# - CancellationToken 是否删除文件锁定?

转载 作者:行者123 更新时间:2023-11-30 22:51:23 26 4
gpt4 key购买 nike

我有以下异步函数:

private async Task<bool> ValidateFtpAsync()
{
return await Task.Run(
() =>
{
if(File.Exists("settings.xml"))
{
var xs = new XmlSerializer(typeof(Information));
using (var read = new FileStream("settings.xml", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{
Information info = (Information)xs.Deserialize(read);

try
{
var DecryptedInfo = FileCryptoDecryptor.ReadEncryptedConfiguration("hakuna.xml.aes", Global_Variables.AppPassword);
string DecryptedFTPPass = EncryDecryptor.Decrypt(DecryptedInfo.FtpPassword, "UltraSecretPasswordNotGonnaSayItToYou");
return General_Functions.isValidConnection(info.HDSynologyIP, info.FtpUsername, DecryptedFTPPass);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
return false;
}
else
{
MessageBox.Show("Missing settings file.");
return false;
}

});
}

您可以看到它从文件中读取数据。我的问题是,如果我将 CancellationToken 用于异步方法,它会在使用 block 时删除文件锁吗?

最佳答案

不,取消 token 本身不会做任何事情(特别是不会关闭文件)。任务的代码需要反复检查 token 的状态并采取相应的行动来执行取消。

目前尚不清楚您打算在您的案例中在哪里使用取消 token ,因为没有重复操作...但是由于代码已通过 using(...){} 语句正确设置,无论在哪里你中断操作文件将在 finally block 中正确关闭 using (var read = new FileStream(....

关于c# - CancellationToken 是否删除文件锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59256384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com