private void ScheduleMetadataRefresh() { // Use a weak reference to allow garbage collector to collect any // non-referenced IdentityProvider objects without the timer being // the thing that keeps it alive. var weakThis = new WeakReference <IdentityProvider>(this); Task.Delay(MetadataRefreshScheduler.GetDelay(MetadataValidUntil.Value)) .ContinueWith((_) => DoLoadMetadataIfTargetAlive(weakThis)); }
private void ScheduleMetadataReload() { var delay = MetadataRefreshScheduler.GetDelay(metadataValidUntil); Task.Delay(delay).ContinueWith((_) => LoadMetadata()); }