Я реализовал пример приложения, чтобы увидеть поведение повторных попыток внутри цикла Parallel.ForEach. Согласно моим наблюдениям, следующее приложение не отображает все значения внутри массива в текстовом поле (показывает случайное изменение количества символов).
Я хочу знать, что вызывает такое поведение. Спасибо
public string DisplayText = "Numbers =";
private void button1_Click(object sender, EventArgs e)
{
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Start(numbers);
textBox1.Text = DisplayText;
}
private void Start(int[] numbers)
{
Parallel.ForEach(numbers, k =>
{
Write(k.ToString());
});
}
private void Write(string text)
{
int maxRetryCount = 3;
int retryCount = 0;
int retryInterval = 1000;
while (retryCount < maxRetryCount)
{
if(retryCount == maxRetryCount-1)
{
DisplayText = DisplayText + "," + text;
break;
}
Thread.Sleep(retryInterval);
retryCount++;
}
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... ted-result