private void button1_Click(object sender, EventArgs e) { frmPeakpara = new frmPeakParameters(); frmPeakpara.ShowDialog(); //ReadGlycanList(); System.Diagnostics.PerformanceCounter Proc = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes"); int freeMemory = Convert.ToInt32(Proc.NextValue() * 0.7f); _Raw = new XRawReader(@"D:\Dropbox\for_Yunli_Hu\b1_19_1_07142012.raw"); //MultiNGlycanESIMultiThreads main = new MultiNGlycanESIMultiThreads(_GlycanList, _Raw, NoOfThread, frmPeakpara.PeakProcessorParameters, frmPeakpara.TransformParameters); //main.ProcessWithMultiThreads(); }
private void SplitDataset() { System.Diagnostics.PerformanceCounter Proc = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes"); int freeMemory = Convert.ToInt32(Proc.NextValue() * 0.7f); int MaxScanInOneSet = Convert.ToInt32(((freeMemory / _noOfThreads) / 45.0f) * 100.0f); if (MaxScanInOneSet >= 3000) { MaxScanInOneSet = 3000; } XRawReader rawReader = new XRawReader(rawFiles.Peek()); List<int> MSScanNo = new List<int>(); _splitDataset = new List<List<int>>(); for (int i = StartScan; i <= EndScan; i++) { if (rawReader.GetMsLevel(i) == 1) { MSScanNo.Add(i); } } int NoOfSet = Convert.ToInt32( Math.Ceiling(MSScanNo.Count / (double)MaxScanInOneSet)); for (int i = 1; i <= NoOfSet; i++) { _splitDataset.Add(new List<int>()); } int DataSetIdx = 0; for (int i = 0; i < MSScanNo.Count; i++) { _splitDataset[DataSetIdx].Add(MSScanNo[i]); DataSetIdx++; if (DataSetIdx == NoOfSet) { DataSetIdx = 0; } } rawReader.Close(); }
public void ProcessWithMultiThreads() { XRawReader rawReader; for (int i = 0; i < _noOfThreads; i++) { rawReader = new XRawReader(rawFiles.Pop()); /* Thread p = new Thread(new MultiNGlycanESI(rawReader, _splitDataset[i], _ListGlycompound, _MassPPM, _GlycanPPM, _MergeDurationMin, _Permenthylated, _ReducedReducingEnd,)); /* _multiESIProcessor.PeakProcessorParameters = _peakParameter; _multiESIProcessor.TransformParameters = _transformParameter; _multiESIThreads[i] = _multiESIProcessor; ThreadPool.QueueUserWorkItem(_multiESIProcessor.Process);*/ } }