gpt4 book ai didi

c# - 关注 C# StreamReader 的死锁

转载 作者:太空狗 更新时间:2023-10-29 22:53:31 27 4
gpt4 key购买 nike

只是一个一般性问题,我正在开发一个 ASP.NET MVC 3 Web 应用程序,该应用程序使用流读取器在 Using 语句中读取配置文件以进行自动处理,如下所示:

using (StreamReader sr = new StreamReader(filepath))
{

}

我担心的是,当多个用户运行应用程序时,当应用程序的多个实例从配置文件中读取值时会发生死锁。我的问题是,使用 Stream Reader 类时死锁是一个问题吗?直觉上我认为不会,因为我假设 Stream Reader 以只读模式打开文件,并且除了手动编辑之外没有外部进程写入配置文件。我只是想确定这是否会成为一个问题。感谢任何见解。

最佳答案

My concern is that when multiple users are running the application, a deadlock will occur when multiple instances of the application are reading values from the configuration file

不,别担心。不会出现死锁。您正在打开文件进行阅读。所以你可以有并发读者。但是,如果您在代码的其他位置写入此文件,则会出现异常。但没有僵局。如果你想正确地将读者和作者同步到一些共享资源,比如一个文件,你可以使用 ReaderWriterLockSlim类(class)。如果您从不写入文件(从同一进程或其他进程),那么您就可以了。但是如果你从不写入文件,为了避免每次都读取和解析这个文件,你应该只读一次并将它缓存在一些内存结构中。例如,这就是 .NET 应用程序配置系统的工作原理。它在运行应用程序时读取并解析 app/web.config 一次,然后将其存储到内存中以便更快地访问。但当然,一切都取决于您的具体情况。

关于c# - 关注 C# StreamReader 的死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10179536/

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