【问题标题】:C# WCF service out of bounds array indexC# WCF 服务越界数组索引
【发布时间】:2018-05-16 20:31:02
【问题描述】:

所以我有一个服务,它实例化一个对象数组,然后为这些对象启动一个新进程。在从另一个线程中的对象获取一些数据之前,我等待实例化和新进程启动。出于某种原因,我在尝试读取数据时超出了边界索引。它似乎试图访问比我定义的索引大 1 的索引(当最后一个索引是 Os [3] 时尝试访问 Os [4]),因此超出了范围?是什么原因造成的?

        lock (initlock)
        {
            for (threadNum = 0; threadNum < 4; threadNum++)
            {
                Os[threadNum] = new myO();
                Thread TOs[threadNum] = new Thread(new ThreadStart(Os[threadNum].ProcessData));
                TOs[threadNum].Start();
            }
        }

        lock (initlock)
        {
            for (int i = 0; i < 4; i++)
            {
                Thread rd[i] = new Thread(new ThreadStart(() => Os[i].GetData());
                rd[i].Start();
            }
        }

【问题讨论】:

    标签: c# multithreading wcf


    【解决方案1】:
    for (int i = 0; i < 4; i++)
    {
        int index = i;
        Thread rd[index] = new Thread(new ThreadStart(() => Os[index].GetData());
        rd[index].Start();
    }
    

    this answer 中的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多