henic: (Default)
[personal profile] henic
Ну что, знатоки сишарпа, скажите мне, с багом я столкнулся или с фичей.
Есть в главной программе объект. Деструктор закрывает все хвосты и выводит сообщение с финальным статусом. Если его не вызвать явно, а просто закончить выполнение через return, такое ощущение, что он и не вызывается.

Date: 2018-10-21 09:08 am (UTC)
From: [identity profile] pwo-jr.livejournal.com
а нет в сишарпе деструкторов как таковых. есть finalizer, который вызывается из garbage collector, когда ему захочется. если процесс закрывается - то garbage collector делать нечего.
для освобождения ресурсов рекомендуется использовать шаблон Disposable (интерфейс IDisposable)

Date: 2018-10-21 09:09 am (UTC)
From: [identity profile] henic.livejournal.com
Вот же блин. :(
Спасибо.

Date: 2018-10-21 09:12 am (UTC)
From: [identity profile] mopexod.livejournal.com
А куда он выводит сообщение?
1) Если в другой обьект аппликации - то, вполне возможно, этот обьект удалили раньше
2) Если в Trace - то, вполне возможно, что деструктор никто и не позвал.

В принципе, удаление обьектов - optional feature. Если памяти много, а программа небольшая, то вообще ни один не удалится.

Тебе точно нужен вызов деструктора? Тогда делай обьект IDisposable, и используй 'using'.

Date: 2018-10-21 09:37 am (UTC)
From: [identity profile] henic.livejournal.com
Вызвал его явно, шоподелать. :)

March 2022

S M T W T F S
  123 45
678 9101112
1314151617 1819
2021 2223242526
2728293031  

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 28th, 2025 11:36 am
Powered by Dreamwidth Studios