|  | @ -35,7 +35,7 @@ public class CameraDataCenter | 
			
		
	
		
		
			
				
					|  |  | 	/// <summary>
 |  |  | 	/// <summary>
 | 
			
		
	
		
		
			
				
					|  |  | 	/// _markSearcherDict 锁对象,写锁
 |  |  | 	/// _markSearcherDict 锁对象,写锁
 | 
			
		
	
		
		
			
				
					|  |  | 	/// </summary>
 |  |  | 	/// </summary>
 | 
			
		
	
		
		
			
				
					
					|  |  | 	private static readonly ReaderWriterLockSlim msDictLock = new(); |  |  | 	private static ReaderWriterLockSlim msDictLock { get; } = new(); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | 	/// <summary>
 |  |  | 	/// <summary>
 | 
			
		
	
		
		
			
				
					|  |  | 	/// (cbCameraId, MarkSearcherBase)
 |  |  | 	/// (cbCameraId, MarkSearcherBase)
 | 
			
		
	
	
		
		
			
				
					|  | @ -224,19 +224,58 @@ public class CameraDataCenter | 
			
		
	
		
		
			
				
					|  |  | 		return markSearcher.AddMarkLabelCalcInfo(markLabelCalcInfo); |  |  | 		return markSearcher.AddMarkLabelCalcInfo(markLabelCalcInfo); | 
			
		
	
		
		
			
				
					|  |  | 	} |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  | 	public bool DeleteCameraMarkLabel(long cameraId, long marklabelId) |  |  | 	public bool DeleteCameraMarkLabel(long cameraId, long markLabelId) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 	{ |  |  | 	{ | 
			
		
	
		
		
			
				
					|  |  | 		if (!_markSearcherDict.ExistsKey(cameraId)) |  |  | 		if (!_markSearcherDict.ExistsKey(cameraId)) | 
			
		
	
		
		
			
				
					|  |  | 			return false; |  |  | 			return false; | 
			
		
	
		
		
			
				
					|  |  | 		MarkSearcherBase markSearcher = _markSearcherDict[cameraId]; |  |  | 		MarkSearcherBase markSearcher = _markSearcherDict[cameraId]; | 
			
		
	
		
		
			
				
					
					|  |  | 		return markSearcher.DeleteMarkLabelCalcInfo(marklabelId); |  |  | 		return markSearcher.DeleteMarkLabelCalcInfo(markLabelId); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 	} |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  | 	public List<MarkLabelCalcResult> GetMarkLabelCalcResults(long cameraId) |  |  | 	public List<MarkLabelCalcResult> GetMarkLabelCalcResultList(long cameraId) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 	{ |  |  | 	{ | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  |  | 
			
		
	
		
		
			
				
					|  |  | 		return null; |  |  | 		return null; | 
			
		
	
		
		
			
				
					|  |  | 	} |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	public async Task<bool> ActiveCameraAsync(long cameraId) | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		return await Task.Run(() => | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			return ActiveCamera(cameraId); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		}); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	public async Task<bool> DeActiveCameraAsync(long cameraId) | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		return await Task.Run(() => | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			return DeActiveCamera(cameraId); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		}); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	public async Task<bool> AddCameraMarkLabelAsync(long cameraId, long markLabelId) | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		return await Task.Run(() => | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			return AddCameraMarkLabel(cameraId, markLabelId); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		}); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	public async Task<bool> DeleteCameraMarkLabelAsync(long cameraId, long markLabelId) | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		return await Task.Run(() => | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			return DeleteCameraMarkLabel(cameraId, markLabelId); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		}); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	public async Task<List<MarkLabelCalcResult>> GetMarkLabelCalcResultListAsync(long cameraId) | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		return await Task.Run(() => | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		{ | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			return GetMarkLabelCalcResultList(cameraId); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		}); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | 	#endregion external call
 |  |  | 	#endregion external call
 | 
			
		
	
		
		
			
				
					|  |  | } |  |  | } |