gpt4 book ai didi

c# - 多处理中的 Path.GetTempFileName

转载 作者:太空狗 更新时间:2023-10-29 17:48:51 26 4
gpt4 key购买 nike

我们在一台计算机上运行程序 (c#) 的多个实例。在每个实例中,我们的代码都试图在方法 Path.GetTempFile() 的帮助下创建“许多”临时文件。有时,我们的程序会因异常而失败:

Exception: Access to the path is denied.
StackTrace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Path.GetTempFileName()

我查看了临时文件夹,没有发现奇怪的地方:可用磁盘空间足够,临时文件数量不是很大等。

我只有一个解释:一个实例获取临时文件并打开它,但与此同时,另一个实例也获取临时文件的名称并尝试打开它。如果正确?如果是,如何解决问题,如果不是如何理解是什么问题?

更新:在装有 Windows Server 2008 HPC

的计算机上失败

谢谢,伊戈尔。

最佳答案

msdn Path 类的状态:

Any public static (Shared in Visual Basic) members of this type are thread safe.

Furthermore IO异常有两个原因:

  1. 如果 GetTempFileName 方法用于创建超过 65535 个文件而不删除以前的临时文件,则会引发 IOException。

  2. 如果没有唯一的临时文件名可用,GetTempFileName 方法将引发 IOException。要解决此错误,请删除所有不需要的临时文件。

我建议检查此条件(因为您明确声明您创建了许多临时文件)。

关于c# - 多处理中的 Path.GetTempFileName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3255469/

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