第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

服務(wù)器端C# Websocket,如何在監(jiān)聽取消令牌時(shí)運(yùn)行循環(huán)?

服務(wù)器端C# Websocket,如何在監(jiān)聽取消令牌時(shí)運(yùn)行循環(huán)?

C#
躍然一笑 2023-09-24 16:22:25
在我的 Vue/.NET Core 2.3 項(xiàng)目中,我開始用 Websockets 替換標(biāo)準(zhǔn) AJAX 調(diào)用,其中我正在實(shí)現(xiàn)一個(gè)股票定價(jià)流服務(wù),以便在股票價(jià)格實(shí)時(shí)更新時(shí)更新前端。之前的價(jià)格更新用于每 5 秒從 FE 發(fā)送一個(gè)間隔請(qǐng)求,以從方法獲取新價(jià)格StockProcess().GetStockPricing(symbol)下面的新 Websocket 實(shí)現(xiàn)現(xiàn)在使用相同的后端 GetStockPricing() 代碼,但是檢查循環(huán)現(xiàn)在位于后端,因此當(dāng)客戶端連接時(shí),該方法將繼續(xù)發(fā)送回價(jià)格。作為一個(gè)原則,實(shí)現(xiàn)工作得很好,如果價(jià)格發(fā)生變化,該方法會(huì)將更新發(fā)送給客戶端,完美。API控制器.cs[HttpGet("GetStockPricingAsync", Name = "GetStockPricingAsync")]public async Task GetStockPricingAsync(string symbol){    var isSocketRequest = ControllerContext.HttpContext.WebSockets.IsWebSocketRequest;    if (isSocketRequest)    {        WebSocket webSocket = await ControllerContext.HttpContext.WebSockets.AcceptWebSocketAsync();        await _mainController.GetStockPricingAsync(ControllerContext.HttpContext, webSocket, symbol);    }    else    {        ControllerContext.HttpContext.Response.StatusCode = 400;    }}問題是我無法取消正在運(yùn)行的GetStockPricing循環(huán):問題是行WebSocketReceiveResult result = await webSocket.ReceiveAsync(requestBuffer, CancellationToken.None);不會(huì)被執(zhí)行,因?yàn)檠h(huán)總是在運(yùn)行,如果我將此行移到循環(huán)之前執(zhí)行,那么循環(huán)也不會(huì)被觸發(fā),所以我無法同時(shí)運(yùn)行循環(huán)和 ReceiveAsync 監(jiān)聽取消令牌。有辦法實(shí)現(xiàn)這一點(diǎn)嗎?在監(jiān)聽取消令牌的同時(shí)運(yùn)行循環(huán)?
查看完整描述

1 回答

?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

嘗試使用 System.Threading.Tasks.Task Run中的循環(huán)來監(jiān)聽它


Task.Run(() => CancellationTokenFunc(...), ...);


static void CancellationTokenFunc(){

  while(true){

             //check for cancel

    }


}

在 webSocket.State 循環(huán)之前執(zhí)行此操作


查看完整回答
反對(duì) 回復(fù) 2023-09-24
  • 1 回答
  • 0 關(guān)注
  • 175 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)