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