Example #1
0
        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();
            }
        }
Example #2
0
 public void CopyTo(Split destSplit)
 {
     destSplit.gain = gain;
     destSplit.feature = feature;
     destSplit.iThresh = iThresh;
 }
Example #3
0
        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();
        }