検証環境
概要
- Addressables で管理しているグループが多いと、
Addressables.CheckForCatalogUpdates の処理に時間がかかるようになり、
メインスレッドが止まってしまう
- 重たい処理は CheckCatalogsOperation.Execute 関数なので
この部分を Tesk.Run で別スレッドに処理を逃してあげることで
メインスレッドが止まることは防げる
CheckCatalogsOperation.cs
54 行目以降
protected override async void Execute()
{
var result = new List<string>();
await System.Threading.Tasks.Task.Run
(
() =>
{
for (int i = 0; i < m_DepOp.Result.Count; i++)
{
var remHashOp = m_DepOp.Result[i];
var remoteHash = remHashOp.Result as string;
if (!string.IsNullOrEmpty(remoteHash) && remoteHash != m_LocalHashes[i])
{
result.Add(m_LocatorInfos[i].Locator.LocatorId);
m_LocatorInfos[i].ContentUpdateAvailable = true;
}
}
}
);
Complete(result, true, null);
}