当我在加载JSON文件时遇到“ IOException:共享违规”时,试图找到一种最合适的解决方案,因为它同时被另一个应用程序保存。
在加载时使用“ try Catch”,并进行某种形式的递归,尽管这很不合理。 因此,在搜索后遇到了此C#解决方案,该解决方案获得了很多好评 Cleanest way to write retry logic?
发生加载的实际函数调用是
private static T LoadData<T>(string filePath)
{
return JsonUtility.FromJson<T>(File.ReadAllText(filePath));
}
但是不确定如何使用上面的链接解决方案(Retry.Do)来实现,该解决方案似乎不允许在函数调用中传递参数,即
Retry.Do(SomeFunctionThatCanFail, TimeSpan.FromSeconds(1));
有人可以帮忙吗?
答案 0 :(得分:0)
您需要创建一个闭包。
最简单的方法是使用lambda表达式:
YourType data = Retry.Do(() => LoadData<YourType>("somefilepath"), TimeSpan.FromSeconds(1));