Что-то страшное
Это МОЯ команда в одном потоке, а в это время Автокад по таймерам и событиям живет своей жизнью, открывает новые транзакции. И никто мне не обещает, что эту чужую транзакцию я не словлю в toptransaction. И попробуйте тогда угадать, кто первый уничтожит нужный мне объект, я или чужая транзакция... По факту отказ от обращений к toptransaction привел к исчезновению случайных сбоев во время закрытия транзакций, которые меня сильно доставали. Правда это были не фатальные ошибки, но совершенно непредсказуемые. Вот типичное сообщение о такой ошибке:
Error:
Type: System.InvalidOperationException
Message: Operation is not valid due to the current state of the object.
Source: Acdbmgd
TargetSite: Void CheckTopTransaction()
System.InvalidOperationException: Operation is not valid due to the current state of the object.
at Autodesk.AutoCAD.DatabaseServices.Transaction.CheckTopTransaction()
at Autodesk.AutoCAD.DatabaseServices.Transaction.DeleteUnmanagedObject()
at Autodesk.AutoCAD.Runtime.DisposableWrapper.!DisposableWrapper()
at Autodesk.AutoCAD.Runtime.DisposableWrapper.Dispose(Boolean A_0)
at Autodesk.AutoCAD.Runtime.DisposableWrapper.Dispose()
at ....
Если кто расскажет как использовать toptransaction
и не выстрелить себе в ногу не нарваться на такие ошибки - буду премного благодарен.