限制可同時執行程式碼段落的執行緒數量

public class xxxController : BaseController, IActionFilter
{
     static readonly SemaphoreSlim semaphoreSlim1 = new SemaphoreSlim(1, 1); // 最多一個執行緒,加上 readonly 確保先初始化後再使用

await semaphoreSlim1.WaitAsync();
try
{
... // 同步執行程式碼 (例如發票取號)
}
finally { semaphoreSlim1.Release(); }

留言

熱門文章