Пример #1
0
        /// <summary>Асинхронное обновление спсика действий</summary>
        public static void ReloadActionsAsync(DateTime?dateStart, DateTime?dateEnd)
        {
            var a = new ReloadActionArgs {
                DateEnd = dateEnd, DateStart = dateStart
            };

            if (workerReloadActions.IsBusy)
            {
                rActionCache        = a;
                isNeedReloadActions = true;
                return;
            }

            isNeedReloadActions = false;
            workerReloadActions.RunWorkerAsync(a);
        }
Пример #2
0
        // загрузка действий
        static void workerReloadActions_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            var result = e.Result as List <MFPlannerAction>;

            if (result != null)
            {
                lock (actions)
                {
                    actions.Clear();
                    actions.AddRange(result);
                }
            }

            DoActionsChanged();

            // Если требуется дочитывание
            if (isNeedReloadActions && rActionCache != null)
            {
                ReloadActionsAsync(rActionCache.DateStart, rActionCache.DateEnd);

                isNeedReloadActions = false;
                rActionCache        = null;
            }
        }