为了账号安全,请及时绑定邮箱和手机立即绑定

如何为使用 localthread 初始化的数组指定大小

如何为使用 localthread 初始化的数组指定大小

C#
慕的地8271018 2021-06-04 17:42:02
我想要一个线程本地的数组并想要使用 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]);

    }

}


查看完整回答
反对 回复 2021-06-05
?
呼如林

TA贡献1798条经验 获得超3个赞

其中的泛型参数ThreadLocal指定要执行的任务的返回值的类型。无需为其提供任何大小,只需从中返回一个数组:


bar = new ThreadLocal<int[]>(() => new int[10]);

这与您有一个返回数组的普通方法相同:


int[] DoSomething()

{

    return new[10] { ... };

}


查看完整回答
反对 回复 2021-06-05
  • 2 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信