public WebMgrResponse ReleaseAgv(ReleaseAgvDto data) { data.LastUpdateTime = DateTime.Now; var dict = CacheStringToObject.ReleaseAgvDtoDict; dict.AddOrUpdate(data.LocationCode, data, (key, value) => data); bool result = false; for (int i = 0; i < 10; i++) { if (dict[data.LocationCode].Status > 0) { result = dict.TryRemove(data.LocationCode, out ReleaseAgvDto outData); break; } System.Threading.Thread.Sleep(100); } WebMgrResponse res = new WebMgrResponse(); if (!result) { res.message = $"放行失败 {data.LocationCode}"; return res; } res.code = 20000; res.message = $"放行成功 {data.LocationCode}"; res.data = data; return res; }
时间: 2024-02-11 15:30:41 浏览: 140
Android系统信息和Apk应用信息获取.rar
这段代码是一个C#方法,用于释放一个AGV。根据传入的参数ReleaseAgvDto data,方法会将最后更新时间设为当前时间,然后将data对象存储到一个字典中,字典的键为data.LocationCode。如果字典中已经存在该键,则将该键对应的值更新为新的data对象。
接下来会进行一个循环,最多执行10次。在每次循环中,方法会检查字典中键为data.LocationCode的值的Status属性是否大于0,如果是,则将该键值对从字典中移除,并跳出循环。如果不是,则暂停100毫秒后再次执行循环,直到循环次数达到10次或者Status属性大于0为止。
最后,方法会根据移除是否成功,返回一个WebMgrResponse对象。如果移除成功,则code属性为20000,message属性为“放行成功 {data.LocationCode}”,data属性为传入的data对象。如果移除失败,则code属性为默认值0,message属性为“放行失败 {data.LocationCode}”。
阅读全文