SourceCode/RFrameGenerate.BLL/Recharge/LockManage.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RFrameGenerate.BLL.Recharge
{
public class LockManage
{
private static object lockObj = new object();
/// <summary>
/// 获取锁
/// </summary>
public static LockModel GetLock(string prev, string orderNo)
{
string key = LockManage.GetKey(prev, orderNo);
var value = LockManage.GetCahce<LockModel>(key);
if (value != null) return value;
lock (lockObj)
{
value = LockManage.GetCahce<LockModel>(key);
if (value != null) return value;
value = new LockModel() { IsSuccess = false, IsExecuted = false };
LockManage.InertCache(key, value, 1);
return value;
}
}
/// <summary>
/// 释放锁
/// </summary>
public static void ReleaseLock(string prev, string orderNo, bool isExecuted = true, bool isSuccess = true)
{
string key = LockManage.GetKey(prev,orderNo);
var value = LockManage.GetCahce<LockModel>(key);
if (value == null) return;
value.IsExecuted = isExecuted;
value.IsSuccess = isSuccess;
}
#region 私有辅助函数
private static string GetKey(string prev, string orderNo)
{
return string.Format("{0}_{1}", prev, orderNo);
}
private static void Remove(string key)
{
System.Web.HttpContext.Current.Cache.Remove(key);
}
后面还有 42 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。