void CalcPi(object rawdigits, DoWorkEventArgs args) { int digits = (int)args.Argument; StringBuilder pi = new StringBuilder("3", digits + 2); // Show progress //ShowProgress(pi.ToString(), digits, 0); bw.ReportProgress(0, pi); if (digits > 0) { pi.Append("."); for (int i = 0; i < digits; i += 9) { int nineDigits = NineDigitsOfPi.StartingAt(i + 1); int digitCount = Math.Min(digits - i, 9); string ds = string.Format("{0:D9}", nineDigits); pi.Append(ds.Substring(0, digitCount)); // Show progress //ShowProgress(pi.ToString(), digits, i + digitCount); double progress = ((double)(i + digitCount) / digits) * 100; bw.ReportProgress((int)progress, pi); } } }
void CalcPi(object sender, DoWorkEventArgs e) { // Get the BackgroundWorker that raised this event. BackgroundWorker worker = sender as BackgroundWorker; // Retrieve argument int digits = (int)e.Argument; StringBuilder pi = new StringBuilder("3", digits + 2); worker.ReportProgress(0, pi); if (digits > 0) { pi.Append("."); for (int i = 0; i < digits; i += 9) { int nineDigits = NineDigitsOfPi.StartingAt(i + 1); int digitCount = Math.Min(digits - i, 9); string ds = string.Format("{0:D9}", nineDigits); pi.Append(ds.Substring(0, digitCount)); // Show progress worker.ReportProgress((i * 100) / digits, pi); if (worker.CancellationPending) { break; } } e.Result = pi; } }
void CalcPi(object rawdigits) { int digits = (int)rawdigits; StringBuilder pi = new StringBuilder("3", digits + 2); // Show progress ShowProgress(pi.ToString(), digits, 0); if (digits > 0) { pi.Append("."); for (int i = 0; i < digits; i += 9) { int nineDigits = NineDigitsOfPi.StartingAt(i + 1); int digitCount = Math.Min(digits - i, 9); string ds = string.Format("{0:D9}", nineDigits); pi.Append(ds.Substring(0, digitCount)); // Show progress ShowProgress(pi.ToString(), digits, i + digitCount); } } }
private void BackgroundWorker_OnDoWork(object sender, DoWorkEventArgs e) { //Debug.WriteLine(input.Digits); StringBuilder pi = new StringBuilder("3", digits + 2); if (digits > 0) { pi.Append("."); for (int i = 0; i < digits; i += 9) { int nineDigits = NineDigitsOfPi.StartingAt(i + 1); int digitCount = Math.Min(digits - i, 9); string ds = $"{nineDigits:D9}"; pi.Append(ds.Substring(0, digitCount)); backgroundWorker.ReportProgress((i * 100) / digits, pi); if (backgroundWorker.CancellationPending) { break; } } } if (backgroundWorker.CancellationPending) { e.Cancel = true; return; } }
void CalcPi(int digits) { StringBuilder pi = new StringBuilder("3", digits + 2); // Show progress ShowProgress(pi.ToString(), digits, 0); if (digits > 0) { pi.Append("."); startTime = DateTime.Now; for (int i = 0; i < digits; i += 9) { int nineDigits = NineDigitsOfPi.StartingAt(i + 1); int digitCount = Math.Min(digits - i, 9); string ds = string.Format("{0:D9}", nineDigits); pi.Append(ds.Substring(0, digitCount)); // Show progress ShowProgress(pi.ToString(), digits, i + digitCount); } endTime = DateTime.Now; TimeSpan calcTime = endTime - startTime; tblCalcTime.Text = calcTime.ToString(); } }
private void BackgroundCalcPi() { StringBuilder pi = new StringBuilder("3,", digits + 2); string ds; // Show progress // ShowProgress(pi.ToString(), digits, 0); evUpdate(this, new PiUpdateEventArgs(pi.ToString(), digits, 0)); if (digits > 0) { pi.Append("."); for (int i = 0; i < digits; i += 9) { int nineDigits = NineDigitsOfPi.StartingAt(i + 1); int digitCount = Math.Min(digits - i, 9); ds = string.Format("{0:D9}", nineDigits); pi.Append(ds.Substring(0, digitCount)); // Show progress //ShowProgress(pi.ToString(), digits, i + digitCount); evUpdate(this, new PiUpdateEventArgs(ds, digits, i + digitCount)); } } result = pi.ToString(); evCompleted(this, new EventArgs()); }
void CalcPi(int digits) { StringBuilder pi = new StringBuilder("3", digits + 2); object sender = System.Threading.Thread.CurrentThread; ShowProgressArgs e = new ShowProgressArgs(pi.ToString(), digits, 0); // Show progress ShowProgress(sender, e); if (digits > 0) { pi.Append("."); for (int i = 0; i < digits; i += 9) { int nineDigits = NineDigitsOfPi.StartingAt(i + 1); int digitCount = Math.Min(digits - i, 9); string ds = string.Format("{0:D9}", nineDigits); pi.Append(ds.Substring(0, digitCount)); // Show progress e.Pi = pi.ToString(); e.DigitsSoFar = i + digitCount; ShowProgress(sender, e); if (e.Cancel) { break; } } } }
private void BackgroundCalcPi() { for (int i = startDec; i < endDec; i += 9) { int nineDigits = NineDigitsOfPi.StartingAt(i + 1); int digitCount = Math.Min(endDec - i, 9); string ds = string.Format("{0:D9}", nineDigits); pi.Append(ds.Substring(0, digitCount)); // Don't Show progress // ShowProgress(pi.ToString(), digits, i + digitCount); } result = pi.ToString(); IsCompleted = true; if (evCompleted != null) { evCompleted(this, new CalcPiEventArgs(index, result)); } }
void CalcPi(int digits) { StringBuilder pi = new StringBuilder("3", digits + 2); // Show progress ShowProgress(pi.ToString(), digits, 0); if (digits > 0) { pi.Append("."); Parallel.For(0, digits / 9, i => { int nineDigits = NineDigitsOfPi.StartingAt(i * 9 + 1); int digitCount = Math.Min(digits - i * 9, 9); string ds = string.Format("{0:D9}", nineDigits); pi.Append(ds.Substring(0, digitCount)); // Show progress ShowProgress(pi.ToString(), digits, i * 9 + digitCount); }); } }
private void BackgroundCalcPi() { startTime = DateTime.Now; StringBuilder pi = new StringBuilder("3", digits + 2); int numCalc = (digits + 8) / 9; string[] results = new string[numCalc]; // Show progress evUpdate(this, new PiUpdateEventArgs(pi.ToString(), digits, 0)); if (digits > 0) { pi.Append("."); Parallel.For(0, numCalc, i => { int nineDigits = NineDigitsOfPi.StartingAt(1 + i * 9); int digitCount = Math.Min(digits - i * 9, 9); string ds = string.Format("{0:D9}", nineDigits); results[i] = ds.Substring(0, digitCount); }); for (int i = 0; i < numCalc; i++) { pi.Append(results[i]); } endTime = DateTime.Now; result = pi.ToString(); } calcTime = endTime - startTime; evCompleted(this, new EventArgs()); }