J'utilise un TransactionScope dans un thread pour vider des données dans ma base de données SQL Server.Arrêter la transaction dans un thread
using (TransactionScope scope = new TransactionScope())
{
// Dump data in database
scope.Complete();
}
La transaction est une transaction longue (40 secondes) car les données sont grandes: c'est normal.
Lorsque je fais un Abort()
pour arrêter le thread au cours de cette transaction, SQL Server semble être verrouillé pendant quelques minutes.
Qu'est-il arrivé?
Comment puis-je éviter cela?
Ok, merci! Si je tue mon programme C#, j'ai le même comportement –
Comme il se doit. Tout client avorté - et la suppression du programme en est une - déclenchera une restauration du côté serveur. La transaction n'a pas été commise car elle est annulée. – TomTom
c'est évident, si vous tuez le programme, le tran n'est pas validé et sera annulé. – vaitrafra