C#, C♯, C#相談室 Part39
■ このスレッドは過去ログ倉庫に格納されています
0482デフォルトの名無しさん
2007/05/31(木) 11:44:05class Hello {
bool finalized = false;
public Hello() { Console.WriteLine("init"); }
~Hello() { finalized = true; Console.WriteLine("fin"); }
public bool Finalized { get { return finalized; }}
public void ReInit() {
if (finalized) { finalized = false; GC.ReRegisterForFinalize(this); Console.WriteLine("re-init"); }
}
public void Say() { Console.WriteLine("Alive : {0}", !finalized); }
}
class TestWR {
WeakReference wr = new WeakReference(new Hello(), true);
void InvokeWR() {
Hello h = (Hello) wr.Target;
if (h == null) { h = new Hello(); wr = new WeakReference(h, true); }
else if (h.Finalized) h.ReInit();
h.Say();
}
■ このスレッドは過去ログ倉庫に格納されています