Я плакал, когда увидел этот пример:
public sealed class GCBeep
{
[DllImport("user32.dll")]
static extern void MessageBeep(int type);
~GCBeep()
{
MessageBeep(-1);
if (!AppDomain.CurrentDomain.IsFinalizingForUnload()) new GCBeep();
}
}
Знаете, что он делает? Правильно, пищит каждый раз, когда происходит сборка мусора
P.S. Для использования надо просто создать один экземпляр.
Здравствуйте Mishka.NET, Вы писали:
M.NET>Я плакал, когда увидел этот пример:
Вместо new можно написать GC.ReRegisterForFinalize(this);
M.NET>Знаете, что он делает? Правильно, пищит каждый раз, когда происходит сборка мусора
Дык, дело такое, что запищишь
Здравствуйте Mishka.NET, Вы писали:
M.NET>Я плакал, когда увидел этот пример:
M.NET>M.NET>public sealed class GCBeep
M.NET>{
M.NET> [DllImport("user32.dll")]
M.NET> static extern void MessageBeep(int type);
M.NET> ~GCBeep()
M.NET> {
M.NET> MessageBeep(-1);
M.NET> if (!AppDomain.CurrentDomain.IsFinalizingForUnload()) new GCBeep();
M.NET> }
M.NET>}
M.NET>
M.NET>Знаете, что он делает? Правильно, пищит каждый раз, когда происходит сборка мусора :super: :)))
С этим пример связан еще один прикол:
Здесь, для определения момента пришибания можно бы было также использовать метод Environment.HasShutdownStarted
Но нельзя — ему static забыли написать :)))