Here are the examples of the csharp api System.Collections.Generic.Dictionary.Remove(UriInfo) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
2 Examples
19
Source : UnityAssetCache.cs
with zlib License
from SinoalmondUnityPackage
with zlib License
from SinoalmondUnityPackage
public bool TryGetreplacedet(UriInfo replacedetUrl, out Unityreplacedet replacedet)
{
// キャッシュテーブルから参照の取得ができなかった場合は
if (!replacedetCacheTable.TryGetValue(replacedetUrl, out var weakUnityreplacedet))
{
// 参照を初期化して取得に失敗を返す
replacedet = null;
return false;
}
// 参照変数からキャッシュへの参照を取得を試み結果を返す(参照が途切れてレコードの削除は別関数で行う)
if (!weakUnityreplacedet.TryGetTarget(out var replacedetTemp))
{
replacedet = null;
return false;
}
//WeakRefが指す対象がC#的なnullではないが、Unityのアセットとして不正な場合
//replacedetCacheから削除する
if (replacedetTemp == null)
{
replacedet = null;
replacedetCacheTable.Remove(replacedetUrl);
eventListener.OnPurgereplacedetCache(replacedetUrl.Uri);
return false;
}
replacedet = replacedetTemp;
return true;
}
19
Source : UnityAssetCache.cs
with zlib License
from SinoalmondUnityPackage
with zlib License
from SinoalmondUnityPackage
public void CleanupUnreferencedCache()
{
// 削除するべきアセットIDリストをリストアップするためにテーブル全体を舐める
var removeTargetList = new List<UriInfo>(replacedetCacheTable.Count);
foreach (var kvp in replacedetCacheTable)
{
// 参照からキャッシュの参照が取得でき無いのなら
if (!kvp.Value.TryGetTarget(out var _))
{
// 削除する対象として記録する
removeTargetList.Add(kvp.Key);
}
}
// 削除する対象として記録されたアセットID分回る
foreach (var replacedetId in removeTargetList)
{
// キャッシュテーブルから削除する
replacedetCacheTable.Remove(replacedetId);
eventListener.OnPurgereplacedetCache(replacedetId.Uri);
}
}