@@ -70,6 +70,8 @@ public sealed partial class SqlCommand : DbCommand, ICloneable
70
70
private static readonly DiagnosticListener _diagnosticListener = new DiagnosticListener ( SqlClientDiagnosticListenerExtensions . DiagnosticListenerName ) ;
71
71
private bool _parentOperationStarted = false ;
72
72
73
+ internal static readonly Action < object > s_cancelIgnoreFailure = CancelIgnoreFailureCallback ;
74
+
73
75
// Prepare
74
76
// Against 7.0 Serve a prepare/unprepare requires an extra roundtrip to the server.
75
77
//
@@ -2137,7 +2139,7 @@ public override Task<int> ExecuteNonQueryAsync(CancellationToken cancellationTok
2137
2139
source . SetCanceled ( ) ;
2138
2140
return source . Task ;
2139
2141
}
2140
- registration = cancellationToken . Register ( s => ( ( SqlCommand ) s ) . CancelIgnoreFailure ( ) , this ) ;
2142
+ registration = cancellationToken . Register ( s_cancelIgnoreFailure , this ) ;
2141
2143
}
2142
2144
2143
2145
Task < int > returnedTask = source . Task ;
@@ -2225,7 +2227,7 @@ protected override Task<DbDataReader> ExecuteDbDataReaderAsync(CommandBehavior b
2225
2227
source . SetCanceled ( ) ;
2226
2228
return source . Task ;
2227
2229
}
2228
- registration = cancellationToken . Register ( s => ( ( SqlCommand ) s ) . CancelIgnoreFailure ( ) , this ) ;
2230
+ registration = cancellationToken . Register ( s_cancelIgnoreFailure , this ) ;
2229
2231
}
2230
2232
2231
2233
Task < SqlDataReader > returnedTask = source . Task ;
@@ -2373,7 +2375,7 @@ public Task<XmlReader> ExecuteXmlReaderAsync(CancellationToken cancellationToken
2373
2375
source . SetCanceled ( ) ;
2374
2376
return source . Task ;
2375
2377
}
2376
- registration = cancellationToken . Register ( s => ( ( SqlCommand ) s ) . CancelIgnoreFailure ( ) , this ) ;
2378
+ registration = cancellationToken . Register ( s_cancelIgnoreFailure , this ) ;
2377
2379
}
2378
2380
2379
2381
Task < XmlReader > returnedTask = source . Task ;
@@ -5947,6 +5949,11 @@ internal void CompletePendingReadWithFailure(int errorCode, bool resetForcePendi
5947
5949
}
5948
5950
}
5949
5951
#endif
5952
+ internal static void CancelIgnoreFailureCallback ( object state )
5953
+ {
5954
+ SqlCommand command = ( SqlCommand ) state ;
5955
+ command . CancelIgnoreFailure ( ) ;
5956
+ }
5950
5957
5951
5958
internal void CancelIgnoreFailure ( )
5952
5959
{
0 commit comments