@@ -139,40 +139,40 @@ public void ScheduleTimer(ICredentialsProvider provider)
139
139
{
140
140
if ( provider . ValidUntil == null )
141
141
{
142
- throw new ArgumentNullException ( " ValidUntil of " + nameof ( provider ) + " was null" ) ;
142
+ throw new ArgumentNullException ( nameof ( provider . ValidUntil ) + " of " + nameof ( provider ) + " was null" ) ;
143
143
}
144
144
if ( _disposed )
145
145
{
146
- throw new InvalidOperationException ( "Registration already disposed" ) ;
146
+ return ;
147
147
}
148
148
149
149
var newTimer = new Timer ( ) ;
150
150
newTimer . Interval = provider . ValidUntil . Value . TotalMilliseconds * ( 1.0 - 1 / 3.0 ) ;
151
- newTimer . Elapsed += ( o , e ) =>
151
+ newTimer . Elapsed += async ( o , e ) =>
152
152
{
153
153
TimerBasedCredentialRefresherEventSource . Log . TriggeredTimer ( provider . Name ) ;
154
154
155
155
lock ( _lockObj )
156
156
{
157
- try
157
+ if ( _disposed )
158
158
{
159
- if ( _disposed )
160
- {
161
- // We were waiting and the registration has been disposed in meanwhile
162
- return ;
163
- }
164
-
165
- provider . Refresh ( ) ;
166
- ScheduleTimer ( provider ) ;
167
- Callback . Invoke ( provider . Password != null ) ;
168
- TimerBasedCredentialRefresherEventSource . Log . RefreshedCredentials ( provider . Name , true ) ;
169
- }
170
- catch ( Exception )
171
- {
172
- Callback . Invoke ( false ) ;
173
- TimerBasedCredentialRefresherEventSource . Log . RefreshedCredentials ( provider . Name , false ) ;
159
+ // We were waiting and the registration has been disposed in meanwhile
160
+ return ;
174
161
}
175
162
}
163
+
164
+ try
165
+ {
166
+ provider . Refresh ( ) ;
167
+ ScheduleTimer ( provider ) ;
168
+ await Callback . Invoke ( provider . Password != null ) . ConfigureAwait ( false ) ;
169
+ TimerBasedCredentialRefresherEventSource . Log . RefreshedCredentials ( provider . Name , true ) ;
170
+ }
171
+ catch ( Exception )
172
+ {
173
+ await Callback . Invoke ( false ) . ConfigureAwait ( false ) ;
174
+ TimerBasedCredentialRefresherEventSource . Log . RefreshedCredentials ( provider . Name , false ) ;
175
+ }
176
176
} ;
177
177
newTimer . Enabled = true ;
178
178
newTimer . AutoReset = false ;
0 commit comments