我正在使用類型爲T的類的BlockingCollection,我想知道是否應該將T轉換爲結構。阻止集合操作和結構
從原則上BlockingCollection簽名我不明白的問題是:
[DebuggerDisplay("Count = {Count}, Type = {m_collection}")]
[ComVisible(false)]
[DebuggerTypeProxy(typeof (SystemThreadingCollections_BlockingCollectionDebugView<>))]
[HostProtection(SecurityAction.LinkDemand, ExternalThreading = true, Synchronization = true)]
public class BlockingCollection<T> : IEnumerable<T>, ICollection, IEnumerable, IDisposable
然而,語義阻塞操作的需要支持取消的是,如果一個元素變得可用之前,操作將被取消,則返回null 。這裏的問題是,一個結構不能爲空,所以下面的代碼是無效的
因此被阻止限於類藏品,還是語義變化返回未初始化結構?