我想要一个线程本地的数组并想要使用 ThreadLocal。但是我如何给出数组的大小?这是不可能的:class Foo{ ThreadLocal<int[]> bar; public Foo() { bar = new ThreadLocal<int[10]>(); }}
2 回答
精慕HU
TA贡献1845条经验 获得超8个赞
您可以使用带有Func<T>“valueFactory”的构造函数来创建它:
class Foo
{
ThreadLocal<int[]> bar;
public Foo()
{
bar = new ThreadLocal<int[]>(() => new int[10]);
}
}
呼如林
TA贡献1798条经验 获得超3个赞
其中的泛型参数ThreadLocal指定要执行的任务的返回值的类型。无需为其提供任何大小,只需从中返回一个数组:
bar = new ThreadLocal<int[]>(() => new int[10]);
这与您有一个返回数组的普通方法相同:
int[] DoSomething()
{
return new[10] { ... };
}
- 2 回答
- 0 关注
- 159 浏览
添加回答
举报
0/150
提交
取消