private void ApplyHandle()
{
if (this.handleQueue.Count == 0)
return;
var list = new List<Handle>();
// リストに一時転送
lock (((ICollection)this.handleQueue).SyncRoot)
{
list.AddRange(this.handleQueue);
this.handleQueue.Clear();
}
foreach (var handle in list)
{
if (handle.TargetPart == 0)
switch (handle.Type)
{
case HandleType.Volume:
this.masterVolume = (float)Math.Pow(handle.Data2.Clamp(2.0f, 0.0f), 2.0);
break;
default:
break;
}
else if (handle.TargetPart >= 1 && handle.TargetPart <= this.partCount)
this.parts[handle.TargetPart - 1].ApplyHandle(handle);
}
}