猿问

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

我想要一个线程本地的数组并想要使用 ThreadLocal。但是我如何给出数组的大小?


这是不可能的:


class Foo

{

    ThreadLocal<int[]> bar;

    public Foo()

    {

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

    }

}


慕的地8271018
浏览 160回答 2
2回答

精慕HU

您可以使用带有Func<T>“valueFactory”的构造函数来创建它:class Foo{&nbsp; &nbsp; ThreadLocal<int[]> bar;&nbsp; &nbsp; public Foo()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; bar = new ThreadLocal<int[]>(() => new int[10]);&nbsp; &nbsp; }}

呼如林

其中的泛型参数ThreadLocal指定要执行的任务的返回值的类型。无需为其提供任何大小,只需从中返回一个数组:bar = new ThreadLocal<int[]>(() => new int[10]);这与您有一个返回数组的普通方法相同:int[] DoSomething(){&nbsp; &nbsp; return new[10] { ... };}
随时随地看视频慕课网APP
我要回答