簡體   English   中英

多個請求同時

[英]multiple requests at the same time

當多個請求同時到達我的 controller 時,我遇到了 C# 異步和等待問題。 我需要請求一個一個地執行,而不是同時執行。 當第一個請求將數據保存在數據庫中時,然后從隊列中獲取下一個請求

我認為在那里放置一些同步就足夠了。 讓我們假設以下代碼:

public async Task GetData()
{
    var result = await db.GetDataFromDatabase();
    return result;
}

您可以聲明SemaphoreSlim類型的私有字段,例如:

private readonly SemaphoreSlim _getDataSem = new SemaphoreSlim(1, 1);

然后修改方法的主體:

public async Task GetData()
{
    _getDataSem.Wait();
    try
    {
        var result = await db.GetDataFromDatabase();
        return result;
    }
    finally { _getDataSem.Release(); }
}

有多種方法可以同步此類代碼,例如Semaphorelock等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM