環境 .net framework 4.5,專案型別WPF。
在TryTake前先清空集合
public static void Clear<T>(BlockingCollection<T> blockingCollection)
{
if (blockingCollection == null)
{
return;
}
while (blockingCollection.Count > 0)
{
blockingCollection.Take();
}
}
然后_queue.TryTake(out Frame frame, timeout, source.Token);執行緒id 3
這里timeout設定35000.
在別的執行緒_queue.Add(frame); 這里執行緒id 6
很奇怪的是TryTake直到超時也沒有取到值。
ps:
在_queue.Add(frame);的執行緒中Take,可以取到值。
VS中,在_queue.Add(frame);所在執行緒執行完add后去take是可以取到值的。
求幫忙分析問題原因.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/251006.html
標籤:C#
上一篇:pc遠程控制手機
下一篇:c#嵌入exe程式的問題
