Народ, а какой бы способ вы предложили для наискорейшего поиска плавающей Access Violation в программе с тяжёлыми вычислениями? Просто между релизной и дебаг сборками разница раз в 5-6 по скорости выполнения, и видимо, из-за замедления ошибка не происходит. Вешать printf-ы?
@VladD финализатор не начнет "есть" объект раньше чем неявная this-ссылка перестанет быть нужной (если только конструктор не завершится аварийно). Это не зависит от числа устанавливаемых полей. Поэтому KeepAlive требуется в очень редких случаях.
И, скорее всего, каждый такой случай - архитектурная ошибка.
@PavelMayorov Ну это да. Но если мы сами пишем аналог SafeHandle (а зачем ещё держать нативные ресурсы не в виде обёртки?), то это обычно кажется оверкиллом.
@PavelMayorov Ну, вот чтобы не думать о таких штуках (а вдруг мы врапим два ресурса? а вдруг мы ещё недоинициализированы, нехорошо this отдавать?), не проще ли написать KeepAlive в конце?
То есть да, в большинстве случаев KeepAlive не нужен.
А когда он реально нужен, то отловить это достаточно сложно
Поскольку race condition
Можно назвать это перестраховкой
Возможно, можно трижды аккуратным программированием обойти необходимость в KeepAlive
Но для этого нужно заэнфорсить достаточно много гайдлайнов
наподобие «использования MarshalAs»
передать чистый IntPtr выглядит как-то доступнее
И я, допустим, вообще не знаю про ICustomMarshaler
По следам вопроса о битовом представлении вещественных чисел и моего ответа на него.
Хочу программно для любого вещественного типа определить, сколько бит в нём отводится под мантиссу, а сколько под экспоненту. Для этого написал следующий код (в нём бит под знак считается отдельно от мантиссы, п...
Здравствуйте.Для удобства чтения хочется изменить цвет фона и цвет шрифта pdf. В программе Atril от Evince этого сделать нельзя, можно только инвертировать цвета что по сути мне не помогает. Читать белые буквы на чёрном фоне - не приятно. Кто-то может что-то посоветовать? На Linux.
MiNET is a stimulus protocol that carries keystroke information from a telephone set to a call control server. It can also be used to carry information to the set for the control of simple text displays. Mitel Corporation designed it in the 1980s as a signaling protocol for its proprietary digital TDM telephone sets. Later it was used to control Mitel IP sets by being encapsulated within TCP. Mitel uses it as an alternative to the functional protocol SIP to maintain the practical life of its PBX call control software....