В классе формы объявить объект типа IProgress и инициализировать, например в конструкторе:
IProgress<int> progress;
progress = new Progress((i) =>
{
progressBar.Value = i;
});
Немного переделать метод calc:
public Task calc(IProgress<int> progress)
{
return Task.Run(() =>
{
for (int i = 0; i < listToCalc.Count; i++) {
listOfWells.Add(new Well(listToCalc[i]));
listOfWells[i].calcP();
progress.Report(i)
}
});
}
В обработчике:
private async void button3_Click(object sender, EventArgs e)
{
ProgressBar.Maximum = listToCalc.Count;
ProgressBar.Value = 0;
ProgressBar.Step = 1;
listOfWells.Clear();
await calc();
}
Как-то так попробуй. Мог скобку потерять, или еще что по мелочи.