.NET 4.x Разные потоки - одинаковые файлы (мистика или глюк) - C#

Узнай цену своей работы

Формулировка задачи:

Я в шоке, что такое в принципе возможно! Может кто-нибудь из профи подскажет чем может быть проблема. В общем у меня такая ситуация: Есть 2 директории. В каждой копия экзешника моей проги. Прога считает нейросети, которые генерируются при запуске и инициализируются случайными числами. Программы запускаются и что-то считают долгое время. Там в каждой куча генераторов случайных чисел и все данные разные. Каждый 1000-й цикл прога начинает выгружать статистику в файл. И чудо заключается в том, что файлы выгруженные примерно в одно время получаются одинаковыми. Выгрузка осуществляется командой:
            File.WriteAllText(path + "\\mood_" + startDateTime + "__" + stopDateTime + ".csv", strMoodParam);
Возможно как-то влияет, что расчеты выполняются в функции timer_CalculationTick, которая вызывается так:
            timerCalculation = new Timer();
            timerCalculation.Interval = 10;
            timerCalculation.Tick += new EventHandler(timer_CalculationTick);
            timerCalculation.Start();   // Поехали!
Выгрузка в файл вызывается из timer_CalculationTick и занимает минут 15-20, поэтому иногда разные экземпляры начинают выгрузку в файлы в одно время. Вот два файла (у них даже названия разные), с одинаковым содержимым. Вот как это выглядит: По моему это мистика! Так получается, что данные из одного потока пишутся в другой поток. Ситуация повторяется на разных ОС (Win 7 и 8). Кто-нибудь может совершить акт экзорцизма и изгнать глюк из кода?

Решение задачи: «.NET 4.x Разные потоки - одинаковые файлы (мистика или глюк)»

textual
Листинг программы
var rand = new Random((int) (DateTime.Now.Ticks ^ Thread.CurrentThread.ManagedThreadId));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы