lock 추가

This commit is contained in:
kyh
2022-12-06 13:39:10 +09:00
parent b7f35ea1ef
commit 460fc40ccd

View File

@@ -16,6 +16,9 @@ namespace Million.Manager
public string regularExpressionString;
public string Name;
//Remmeber dic 관련 에러 처리를 위한 Lock obj
private object obj = new object();
/// <summary>
/// 캐쉬 Dictionary
/// </summary>
@@ -38,62 +41,64 @@ namespace Million.Manager
public bool DicExcuteScript(Dictionary<string, bool> RegularExpression)
{
var cloneRex = RegularExpression.ToDictionary(x => x.Key, x => x.Value);
try
lock (obj)
{
//중복 검사
Dictionary<string, bool> data = null;
foreach(var key in rememberDic.Keys)
try
{
bool checker = true;
if(key.Count == cloneRex.Count)
//중복 검사
Dictionary<string, bool> data = null;
foreach (var key in rememberDic.Keys)
{
foreach(var keyStr in key.Keys)
bool checker = true;
if (key.Count == cloneRex.Count)
{
if(cloneRex.ContainsKey(keyStr))
foreach (var keyStr in key.Keys)
{
if (key[keyStr] != cloneRex[keyStr])
if (cloneRex.ContainsKey(keyStr))
{
if (key[keyStr] != cloneRex[keyStr])
checker = false;
}
else
{
checker = false;
}
else
{
checker = false;
}
}
}
else
{
checker = false;
}
if (checker)
{
data = key;
break;
}
}
if (data != null)
{
return rememberDic[data];
}
else
{
checker = false;
}
var returnData = ScriptExcute(ChangeScript(regularExpressionString, cloneRex));
rememberDic[cloneRex] = returnData;
if(checker)
{
data = key;
break;
var str = "Name : " + Name + ",\r\nregularExpressionString : " + regularExpressionString + ",\r\n RegularExpression : "
+ JsonConvert.SerializeObject(cloneRex) + ",\r\n Result : " + returnData.ToString()
+ ",\r\n RememberDic : " + JsonConvert.SerializeObject(rememberDic) + "\r\n";
LogManager.WriteLog(str);
return returnData;
}
}
if (data != null)
catch (Exception e)
{
return rememberDic[data];
throw e;
}
else
{
var returnData = ScriptExcute(ChangeScript(regularExpressionString, cloneRex));
rememberDic[cloneRex] = returnData;
var str = "Name : " + Name +",\r\nregularExpressionString : " + regularExpressionString + ",\r\n RegularExpression : "
+ JsonConvert.SerializeObject(cloneRex) + ",\r\n Result : " + returnData.ToString()
+ ",\r\n RememberDic : " + JsonConvert.SerializeObject(rememberDic) + "\r\n";
LogManager.WriteLog(str);
return returnData;
}
}
catch (Exception e)
{
throw e;
}
}