private static void CalcDataModelsUpdate(string table) { switch (table) { case "Software": if (CalcDataModelSoftwareConcat.HasInstance()) { CalcDataModelSoftwareConcat.GetInstance().DefferedUpdate = true; } break; case "SoftVersions": if (CalcDataModelSoftwareConcat.HasInstance()) { CalcDataModelSoftwareConcat.GetInstance().DefferedUpdate = true; } break; case "SoftLicenses": if (CalcDataModelLicensesConcat.HasInstance()) { CalcDataModelLicensesConcat.GetInstance().DefferedUpdate = true; } break; } }
public void Run() { var context = SynchronizationContext.Current; ThreadPool.QueueUserWorkItem(_ => { while (true) { context.Send(__ => { if (CalcDataModelLicensesConcat.HasInstance() && CalcDataModelLicensesConcat.GetInstance().DefferedUpdate) { CalcDataModelLicensesConcat.GetInstance().Refresh(EntityType.Unknown, null, true); CalcDataModelLicensesConcat.GetInstance().DefferedUpdate = false; } if (CalcDataModelSoftwareConcat.HasInstance() && CalcDataModelSoftwareConcat.GetInstance().DefferedUpdate) { CalcDataModelSoftwareConcat.GetInstance().Refresh(EntityType.Unknown, null, true); CalcDataModelSoftwareConcat.GetInstance().DefferedUpdate = false; } }, null); //Обновление делаем примерно каждые CalcDataModelsUpdateTimeout милисекунд Thread.Sleep(LicenseSoftwareSettings.CalcDataModelsUpdateTimeout); } }, null); }