Статический финализатор

Мы также можем найти файлы, измененные между двумя коммитами или ветвями, например,

git log  --pretty=format: --name-only <source_branch>...<target_branch> | sort | uniq -c | sort -rg | head -50 
41
задан Michael Damatov 2 November 2008 в 06:35
поделиться

4 ответа

В основном Вы не можете. Разработайте свой путь на основе этого к возможному полному объему.

не забывают, что программа может всегда оконечный резко так или иначе - кто-то вытаскивающий питание, являющееся очевидным примером. Таким образом, что-либо, что Вы делаете, должно быть "максимальными усилиями" - в этом случае я был бы, конечно надежда , что AppDomain.ProcessExit будет достаточно хорошо.

, Что необходимо сделать в особом случае?

30
ответ дан Jon Skeet 23 September 2019 в 15:13
поделиться

Я подверг бы сомнению то, что Вы загружаете в своих статических методах, которые должны быть выпущены. Я, конечно, не рекомендовал бы делать эти вещи в статическом методе.

Однако Ваш статический метод мог instanciate объект, который имеет завершить метод.

6
ответ дан Ady 23 September 2019 в 15:13
поделиться

Herfried Wagner записал превосходная статья , объясняющая, как реализовать этот †“увы на немецком языке (и VB). Однако, код должен быть понятным.

я попробовал его:

static readonly Finalizer finalizer = new Finalizer();

sealed class Finalizer {
  ~Finalizer() {
    Thread.Sleep(1000);
    Console.WriteLine("one");
    Thread.Sleep(1000);
    Console.WriteLine("two");
    Thread.Sleep(1000);
    Console.WriteLine("three");
    Thread.Sleep(1000);
    Console.WriteLine("four");
    Thread.Sleep(1000);
    Console.WriteLine("five");
  }
}

Это, кажется, работает точно тот же путь AppDomain.ProcessExit, событие делает: финализатор получает приблизительно три секунды...

44
ответ дан Michael Damatov 23 September 2019 в 15:13
поделиться

Два решения, которые переходят для возражения:

  • не используют статический класс. Если Вы используете нестатический класс и инстанцируете его, Вы не должны волноваться об очистке так же.
  • , Если бы это не опция, я утверждал бы, что это - хорошая ситуация для использования одиночного элемента. Это инстанцирует копии Вашего объекта и обращаться к финализатору выход, но все еще позволять Вам рассматривать его как статический класс по большей части. В конце концов, Ваш класс уже статичен и поэтому совместно использует большинство общих причин не использовать одиночный элемент.
6
ответ дан Jason Baker 23 September 2019 в 15:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: