排隊發送資料,只有當一個資料發送完成并且回應正確以后,才發送下一個資料 有沒有什么好的思路,或者我該用什么方法來解決這個問題呢
uj5u.com熱心網友回復:
信號量控制Semaphoreuj5u.com熱心網友回復:
異步信號鎖就是,具體代碼不寫了,你自己完成。我這里只放個腳手架private static readonly SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1);
public async task sendAndWait(byte[] date, timeSpan timeout) //雖然你沒說超時,我不還是建議超時處置
{
await semaphoreSlim.WaitAsync()
發送資料();
await 接收資料(timeSpan)
semaphoreSlim.Release()
}
這里只是一個簡單的腳手架,我沒有具體實作,這里面如何發送,如何接收,如何處置例外和超時你自己完成
uj5u.com熱心網友回復:
實際上按你的要求,其實已經不是多執行緒了,如果不是因為需要異步等待接收,按你的要求,我都可以看成一個同步程序所以直接用lock 都可以滿足
uj5u.com熱心網友回復:
我搞錯了 其實是異步等待接收資料,可以用什么方法解決呢uj5u.com熱心網友回復:
多個執行緒,操作安全佇列---出隊轉載請註明出處,本文鏈接:https://www.uj5u.com/net/103401.html
標籤:C#
