2009-09-10 68 views
3

我正在写一个泛型类,我需要使用Interlocked。Interlocked.Exchange不能用于泛型?

T test1, test2; 
Interlocked.Exchange<T>(ref test1, test2); 

这不会编译。所以我不得不使用Exchange(对象,对象),而不是MSDN建议不要以这种方式使用它?

回答

10

只要您的泛型类具有与Interlocked.Exchange<T>相同的约束即where T: class,这将起作用。

从文档为Interlocked.Exchange

此方法仅支持引用类型