/// <summary> /// Adds event to queue and uploads /// </summary> /// <param name="countlyEvent">event object</param> /// <returns>True if success</returns> private async static Task<bool> AddEvent(CountlyEvent countlyEvent) { if (String.IsNullOrWhiteSpace(ServerUrl)) { throw new InvalidOperationException("session is not active"); } TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(); ThreadPool.QueueUserWorkItem(async (work) => { lock (sync) { Events.Add(countlyEvent); SaveEvents(); } bool success = await Upload(); tcs.SetResult(success); }); return await tcs.Task; }
/// <summary> /// Adds event to queue and uploads /// </summary> /// <param name="countlyEvent">event object</param> private static void AddEvent(CountlyEvent countlyEvent) { if (String.IsNullOrWhiteSpace(ServerUrl)) { throw new InvalidOperationException("session is not active"); } ThreadPool.QueueUserWorkItem((work) => { lock (sync) { Events.Add(countlyEvent); SaveEvents(); } Upload(); }); }