Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>As Kamil has pointed out, <code>Tasks</code> is not available in older than .NET 4.0.</p> <p>If you are stuck in the dark ages, the BackgroundWorker does a great job of this. In fact, this is probably what it was created for!</p> <p><strong>Untested Pseudo Code:</strong></p> <pre><code>public partial class Form1 : Form { private bool ok; private BackgroundWorker worker; public Form1() { InitializeComponent(); worker = new BackgroundWorker(); worker.WorkerReportsProgress = true; worker.WorkerSupportsCancellation = true; worker.DoWork += new DoWorkEventHandler(worker_DoWork); worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); ok = true; } private void timerTick(object sender, EventArgs e) { if (!worker.IsBusy) { worker.RunWorkerAsync(); } } private void worker_DoWork(object sender, DoWorkEventArgs e) { var w = (BackgroundWorker)sender; MyData inputData = (MyData)e.Argument; for (int i = 0; (i &lt; NUM_TASKS) &amp;&amp; !worker.CancellationPending; i++) { w.ReportProgress(i); // do tasks } e.Result = SomethingYouWantReturned(); } private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { if (!ok) { worker.CancelAsync(); } } private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { ok = false; MessageBox.Show(this, e.Error.Message, "Error!"); } else { var item = (TypeYouWantedReturned)e.Result; Console.WriteLine("Do something with `item`."); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload