Мы также можем найти файлы, измененные между двумя коммитами или ветвями, например,
git log --pretty=format: --name-only <source_branch>...<target_branch> | sort | uniq -c | sort -rg | head -50
В основном Вы не можете. Разработайте свой путь на основе этого к возможному полному объему.
не забывают, что программа может всегда оконечный резко так или иначе - кто-то вытаскивающий питание, являющееся очевидным примером. Таким образом, что-либо, что Вы делаете, должно быть "максимальными усилиями" - в этом случае я был бы, конечно надежда , что AppDomain.ProcessExit
будет достаточно хорошо.
, Что необходимо сделать в особом случае?
Я подверг бы сомнению то, что Вы загружаете в своих статических методах, которые должны быть выпущены. Я, конечно, не рекомендовал бы делать эти вещи в статическом методе.
Однако Ваш статический метод мог instanciate объект, который имеет завершить метод.
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
, событие делает: финализатор получает приблизительно три секунды...
Два решения, которые переходят для возражения: