예제 #1
0
        public StabilizedResourceMeter(IResourceMeter rawResourceMeter, int sampleCount)
        {
            ArgumentValidator.ThrowIfNull("rawResourceMeter", rawResourceMeter);
            ArgumentValidator.ThrowIfInvalidValue <int>("sampleCount", sampleCount, (int count) => count > 1);
            this.rawResourceMeter = rawResourceMeter;
            this.rawResourceMeter.Refresh();
            ResourceSample initialSample = new ResourceSample(this.rawResourceMeter.ResourceUse.CurrentUseLevel, this.rawResourceMeter.Pressure);

            this.stabilizer  = new ResourceSampleStabilizer(sampleCount, initialSample);
            this.pressure    = this.rawResourceMeter.Pressure;
            this.resourceUse = new ResourceUse(this.rawResourceMeter.Resource, this.rawResourceMeter.ResourceUse.CurrentUseLevel, this.rawResourceMeter.ResourceUse.PreviousUseLevel);
        }
 private static string GetDebugInfo(IResourceMeter resourceMeter)
 {
     ArgumentValidator.ThrowIfNull("resourceMeter", resourceMeter);
     return("Refresh method for " + resourceMeter.Resource);
 }
 public ResourceTrackingOperation(IResourceMeter resourceMeter, IExecutionInfo executionInfo, int maxTransientExceptions = 5) : base(ResourceTrackingOperation.GetDebugInfo(resourceMeter), ResourceTrackingOperation.GetResourceTrackingAction(resourceMeter), executionInfo, maxTransientExceptions)
 {
     this.resourceMeter = resourceMeter;
 }
 private static Action GetResourceTrackingAction(IResourceMeter resourceMeter)
 {
     ArgumentValidator.ThrowIfNull("resourceMeter", resourceMeter);
     return(new Action(resourceMeter.Refresh));
 }