public FindSplitAsync(int cThreads) { this.bestSplit = new Split(); //setting up threads to compute the best splits this.cThreads = (cThreads > MAX_THREADS) ? MAX_THREADS : cThreads; this.findSplitThreadObjList = new List<FindSplitObj_Thread>(this.cThreads); this.findSplitThreadList = new List<Thread>(this.cThreads); this.StartEvents = new ManualResetEvent[this.cThreads]; this.DoneEvents = new ManualResetEvent[this.cThreads]; for (int i = 0; i < this.cThreads; i++) { this.StartEvents[i] = new ManualResetEvent(false); this.DoneEvents[i] = new ManualResetEvent(true); FindSplitObj_Thread findSplitThreadObj = new FindSplitObj_Thread(StartEvents[i], DoneEvents[i]); this.findSplitThreadObjList.Add(findSplitThreadObj); ThreadStart threadStart = new ThreadStart(findSplitThreadObj.Find); Thread thread = new Thread(threadStart); this.findSplitThreadList.Add(thread); thread.Start(); } }
public void CopyTo(Split destSplit) { destSplit.gain = gain; destSplit.feature = feature; destSplit.iThresh = iThresh; }
public FindSplitObj() { this.regionSum = new double[ushort.MaxValue + 1]; this.regionCount = new int[ushort.MaxValue + 1]; this.idxDataPrefetch = new int[FindSplitObj.cSizePrefectch]; this.dataCodedPrefetch = new ushort[FindSplitObj.cSizePrefectch]; bestSplit = new Split(); curSplit = new Split(); }