c# - Should I unregister from TransactionScope TransactionCompleted event? -


generally when registering events in .net, practice unregister them when object no longer needed avoid memory leak.

what case using transactionscope's transactioncompleted event?

consider following code snippet:

using (var scope = new transactionscope(transactionscopeoption.required)) {     transaction.current.transactioncompleted += ontransactioncompleted;      //      scope.complete(); } 

looking when should unregister 'transactioncompleted' event,

if @ end of using statement, guaranteed event handler executed?

other option unregister @ event handler itself, i'm not sure transactionscope won't started till then.

when transactioncompleted event raised? can sure raised when scope object finish disposal? (leave 'using' block)

i don't see reference in msdn document nor in source code.

if @ end of using statement, guaranteed event handler executed?

no, because might nested scope. there 1 transaction active @ time , managed outermost scope.

can sure raised when scope object finish disposal?

for same reason, no. raised when transaction commits when outermost scope disposed.

you don't need unregister event handler because transactions short-lived objects not reused.


Comments

Popular posts from this blog

PHPMotion implementation - URL based videos (Hosted on separate location) -

javascript - Using Windows Media Player as video fallback for video tag -

c# - Unity IoC Lifetime per HttpRequest for UserStore -