lock 추가
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user