オブジェクトをキャッシュします。http://msdn.microsoft.com/en-us/library/ms227644(v=vs.80).aspxからの読み取りポリシー前の明白で一般的なチェック
if (Cache["customerDataSet"] == null)
{
dataSet = DataSetConfiguration.CustomerDataSet;
Cache["customerDataSet"] = dataSet;
}
else
{
dataSet = (DataSet)Cache["customerDataSet"];
}
dataSet オブジェクトの存在を保護します。dataSet はオブジェクトへの参照にすぎないため、キャッシュ内の実際の dataSet は、たとえば foreach ループの途中で数ミリ秒でなくなる可能性があります。もしそうなら、これ:
dataSet = ((DataSet)Cache["customerDataSet"]).Copy();
より安全であるべきです。ただし、キャッシュは .Copy() 中に期限切れになる可能性があります。私は正しいですか、それとも単に考えすぎですか?