限制可同時執行程式碼段落的執行緒數量
public class xxxController : BaseController, IActionFilter { static readonly SemaphoreSlim semaphoreSlim1 = new SemaphoreSlim(1, 1); // 最多一個執行緒,加上 readonly 確保先初始化後再使用 await semaphoreSlim1.WaitAsync(); try { ... // 同步執行程式碼 (例如發票取號) } finally { semaphoreSlim1.Release(); }