Есть код
class Program
{
static void Main(string[] args)
{
string filePath = @"c:\test\test.txt";
string tempPath = Path.GetTempPath();
Task.WaitAll(Enumerable.Range(1, 20)
.Select(i => Task.Run(() =>
{
var destFilePath = Path.Combine(tempPath, $"{i.ToString()}.txt");
File.Copy(filePath, destFilePath);
//... process destFile
})).ToArray());
Debug.WriteLine(tempPath);
}
}
где просиходит создание копий файла test.txt
и их обработка в многопоточном режиме. Здесь сразу хочется отметить свое понимание разницы между многопоточно и паралельно: если при создании очередно потока, окажеться свободным одно из ядер процесса, то обработка очередной копии файла и во все будет запущенна параллельно.
Сейчас ведь в различных потоках идет доступ к разделяемому ресурсу test.txt
и никакой синхронизации потоков я не делаю как видите и почему тогда все проходит гладко и никаких exception нет? Или Task.WaitAll()
сам делает синхронизацию?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите существует ли библиотеки для работы с ext3/ext4, или как встроить в свою программу какие нибудь механизмы чтобы можно было читать...
ArgumentOutOfRangeException: startIndex + count > thislength Parameter name: count System
Есть три вкладки у элемента TabControl, на каждой из них есть DataGrid, информация в котором периодически обновляетсяКак сделать так, что при смене...
Доброе время суток! Хочу создать окно авторизации, при условии что CheckBox должны быть выделены по очередности