0

サービスに次のコードがあります。

protected override void OnStart(string[] args)
{
    var cleaner = new Cleaner();
    Action action = cleaner.Run;
    action.BeginInvoke(null, null);
}

デリゲートが使用するオブジェクトはローカルでしか作成されないため、GC によって収集される可能性があるため、デリゲートをインスタンス変数に移動する必要があるかどうか心配です。

4

1 に答える 1

0

まだ「使用中」のオブジェクトが収集された場合はどうなりますか? その質問に対する正気の答えはありません。そのため、CLR は、まだ参照されているオブジェクトがガベージ コレクションされないことを保証します。コードをどのように記述しても安全です。

オブジェクトがまだ参照されている場合、オブジェクトを収集することさえできません。あなたがしたかったとしても。

于 2012-06-30T21:38:53.300 に答える