0

問題: DataContext インスタンスを他のハンドラーに配信するプロバイダー クラス MyProvider があります。MyProvider は、再利用のために DataContext インスタンスを開いたままにします。この動作は大量のメモリを消費するため、MyProvider が要求ごとに DataContext のインスタンスを作成し、後で破棄するようにしました。Getter を介して同時に 1 つの DataContext を要求するハンドラーが多数あるため、DataContext インスタンスを破棄するタイミングがわかりません。

返されたインスタンスが使用されなくなったときに MyProvider.Getter に通知する魔法のトリックはないと思いますか?

ありがとう

4

1 に答える 1

0

CreateDataContext()「MyProvider」クラスでを作成し、呼び出し元が後続のリクエストでそれを提供できるようにすることにしました。

using (DataContext context = provider.CreateDataContext())
{
    provider.FirstMethod(context, ...);
    provider.SecondMethod(context, ...);
}

このようにして、呼び出し元は必要な限りコンテキストを保持できますが、必要がなくなったらすぐに破棄できます。

これが最善の解決策かどうかはわかりませんが、限られたリソースへのアクセスを提供するようなコンテキストの問題は解決しました。

于 2013-09-29T12:35:44.230 に答える