Пример на использование GC :))
От: Mishka.NET Норвегия  
Дата: 25.07.02 15:32
Оценка: 76 (6) +1
Я плакал, когда увидел этот пример:
public sealed class GCBeep
{
  [DllImport("user32.dll")]
  static extern void MessageBeep(int type);
  ~GCBeep()
  {
    MessageBeep(-1);
    if (!AppDomain.CurrentDomain.IsFinalizingForUnload()) new GCBeep();
  }
}

Знаете, что он делает? Правильно, пищит каждый раз, когда происходит сборка мусора

P.S. Для использования надо просто создать один экземпляр.
Re: Пример на использование GC :))
От: IT Россия linq2db.com
Дата: 25.07.02 16:13
Оценка:
Здравствуйте Mishka.NET, Вы писали:

M.NET>Я плакал, когда увидел этот пример:


Вместо new можно написать GC.ReRegisterForFinalize(this);

M.NET>Знаете, что он делает? Правильно, пищит каждый раз, когда происходит сборка мусора


Дык, дело такое, что запищишь
Если нам не помогут, то мы тоже никого не пощадим.
Re: Пример на использование GC :))
От: airk Ниоткуда  
Дата: 26.07.02 21:26
Оценка:
Здравствуйте 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 забыли написать :)))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.