I have been developing a windows forms project where I have a 10 tasks to do, and I would like to do this in a async way.
These tasks will star when the user cl
Sriram covered how to do the async/await in his answer, however I wanted to show you another way to update the progress on the UI thread using his answer as a base.
.NET 4.5 added the IProgress
private async void button1_Click(object sender, EventArgs e)
{
var progress = new Progress(UpdateRow); //This makes a callback to UpdateRow when progress is reported.
var tasks = Processes.Select(process => ProcessObject(process, progress)).ToList();
await Task.WhenAll(tasks);
}
private async Task ProcessObject(ProcessViewModel process, IProgress progress)
{
// my code is here with some loops
await Task.Run(()=>
{
//Will be run in ThreadPool thread
//Do whatever cpu bound work here
//Still in the thread pool thread
process.Progress++;
// feedback to UI, calls UpdateRow on the UI thread.
progress.Report(process);
});
}