C#における並列処理の排他制御についてまとめました。 特にUnityに依存する内容ではないですが、Unityで動作確認を行っています。 排他制御の必要性 基本的な排他処理:lockObject 単純な排他処理:Interlocked 並列数に上限を設ける : SemaphoreSlim Semaphore EventWaitHandle 関連 参考 Unity2019.4.4 排他制御の必要性 複数スレッドで並列処理を行う場合には共有の変数などの取り扱いに注意をする必要があります。 例えば以下のように一つの変数を100回インクリメントするTaskを100個作成したとします。 using System.Collections.Generic; using System.Threading.Tasks; using UnityEngine; public class Example : Mon