• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

C#WCF服务越界数组索引

c/c++ 来源:skevthedev 6次浏览

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

 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(); 
      } 
     } 

===========解决方案如下:

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。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)