public async Task AcceptEventAsync(Action <string> callback = null) { await simpleListener.AcceptClientsAsync(eventData => { try { JObject eventObj = JObject.Parse(eventData); eventObj.Add("event_id", Guid.NewGuid().ToString("N")); var eventKeyValue = eventObj[eventKeyFieldName].Value <string>(); bool isUpdated = cache.TrySetValue(eventKeyValue, (cache, value) => { List <object> objList = value as List <object>; objList.Add(eventObj); return(true); }); if (callback != null) { Task.Run(() => callback(eventData)); } //eventCallback?.Invoke(eventData); } catch (Exception ex) { Console.WriteLine(ex.Message); } }); }