|
@@ -19,7 +19,8 @@ namespace XdCxRhDW.WebApi.Controllers
|
|
|
/// </summary>
|
|
|
public class DetectCgController : BaseController
|
|
|
{
|
|
|
- private readonly TestService service;
|
|
|
+ private readonly string uploadFolder;
|
|
|
+ private readonly DetectService service;
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
@@ -30,6 +31,8 @@ namespace XdCxRhDW.WebApi.Controllers
|
|
|
this.uploadFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot");
|
|
|
this.service = service;
|
|
|
}
|
|
|
+ private static readonly object thisLock = new object();
|
|
|
+ Dictionary<string, XcorrUtils> keyValues = new Dictionary<string, XcorrUtils>();
|
|
|
|
|
|
private (bool, string) ValidateCalcParam(CalcDto dto)
|
|
|
{
|
|
@@ -110,7 +113,10 @@ namespace XdCxRhDW.WebApi.Controllers
|
|
|
try
|
|
|
{
|
|
|
XcorrUtils xcorr = new XcorrUtils();
|
|
|
- service.Add(token, xcorr);
|
|
|
+ lock (thisLock)
|
|
|
+ {
|
|
|
+ keyValues.Add(token, xcorr);
|
|
|
+ }
|
|
|
var result = await xcorr.Calc(xItem);
|
|
|
//开始计算
|
|
|
if (result.flag == -2)
|
|
@@ -144,7 +150,10 @@ namespace XdCxRhDW.WebApi.Controllers
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
- service.Remove(token);
|
|
|
+ lock (thisLock)
|
|
|
+ {
|
|
|
+ keyValues.Remove(token);
|
|
|
+ }
|
|
|
try
|
|
|
{
|
|
|
//删除计算得文件
|
|
@@ -169,17 +178,18 @@ namespace XdCxRhDW.WebApi.Controllers
|
|
|
//{
|
|
|
// return await Task.Run(() =>
|
|
|
// {
|
|
|
- // var xcorr = service.Get(token);
|
|
|
- // if (xcorr != null)
|
|
|
+ // lock (thisLock)
|
|
|
// {
|
|
|
- // xcorr.StopCalc();
|
|
|
- // return Success(true);
|
|
|
+ // if (keyValues.ContainsKey(token))
|
|
|
+ // {
|
|
|
+ // keyValues[token].StopCalc();
|
|
|
+ // return Success(true);
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // return Success(false);
|
|
|
+ // }
|
|
|
// }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // return Success(false);
|
|
|
- // }
|
|
|
-
|
|
|
// });
|
|
|
|
|
|
//}
|
|
@@ -229,7 +239,10 @@ namespace XdCxRhDW.WebApi.Controllers
|
|
|
try
|
|
|
{
|
|
|
XcorrUtils xcorr = new XcorrUtils();
|
|
|
- service.Add(token, xcorr);
|
|
|
+ lock (thisLock)
|
|
|
+ {
|
|
|
+ keyValues.Add(token, xcorr);
|
|
|
+ }
|
|
|
var dmcResult = await xcorr.DmcCheckAsync(dto.file1, dto.fsHz, dto.dmcType);
|
|
|
foreach (var dmcItem in dmcResult)
|
|
|
{
|
|
@@ -247,7 +260,10 @@ namespace XdCxRhDW.WebApi.Controllers
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
- service.Remove(token);
|
|
|
+ lock (thisLock)
|
|
|
+ {
|
|
|
+ //keyValues.Remove(token);
|
|
|
+ }
|
|
|
try
|
|
|
{
|
|
|
//删除检测的文件
|
|
@@ -272,20 +288,22 @@ namespace XdCxRhDW.WebApi.Controllers
|
|
|
//{
|
|
|
// return await Task.Run(() =>
|
|
|
// {
|
|
|
- // var xcorr = service.Get(token);
|
|
|
- // if (xcorr != null)
|
|
|
+ // lock (thisLock)
|
|
|
// {
|
|
|
- // xcorr.StopDm();
|
|
|
- // return Success(true);
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // return Success(false);
|
|
|
+ // if (keyValues.ContainsKey(token))
|
|
|
+ // {
|
|
|
+ // keyValues[token].StopDm();
|
|
|
+ // return Success(true);
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // return Success(false);
|
|
|
+ // }
|
|
|
// }
|
|
|
// });
|
|
|
|
|
|
//}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|