Глобальный счетчик

one

Client
Регистрация
22.09.2015
Сообщения
6 792
Благодарностей
1 264
Баллы
113
Коллеги, подскажите решение. Я так подразумеваю что без С# и локами тут не обойтись.

Есть один шаблон и он добавлен в ЗП 10 раз с разными настройками. Надо что бы эти 10 копий считали один счетчик и подостижении нужного значений (какой копии шаблона он попадется) выполняли определенное действие. Реализовал с файлом в котром копии меняют значени и как правило бывает что оджно и тоже значение попадает нескольким копиям шаблона. Подскажите решение что бы каждая копия получала свое значение. Счетчик в текстовый файл, глобальную переменную, кубиками, С#?

Запуск шаблонов поисходит один раз т.е. они запущены постоянно (кол-во повторов бесконечно) после отработки становятся на паузу после продолжают свою работу.
 

volody00

Client
Регистрация
06.09.2016
Сообщения
792
Благодарностей
810
Баллы
93
если я всё верно понял, можно создать txt файл, куда записывать цифры от 1 до 10. Пускай каждый шаблон берет строку с удалением, а по окончании работы (по bad и good end) возвращает взятую цифру обратно. Тот же, кому попадется та же 10, будет выполнять что нужно. Т.к. шаблоны работают непрерывно цифра 10 будет как правило попадаться разным шаблонам (а не одному и тому же).

ещё можешь так попробовать:
C#:
string pathSchetchik = project.Directory + @"\счётчик.txt";
lock(SyncObject)
{
    if(!File.Exists(pathSchetchik)) File.WriteAllText(pathSchetchik, "1");
    
    string schNow = File.ReadAllText(pathSchetchik);
    
    //смотрим текущее значение из txt файла и если оно равно 10 в переменную rez пишем true. в txt запишем 1
    if(schNow == "10")
    {
        project.Variables["rez"].Value = "true";
        File.WriteAllText(pathSchetchik, "1");
        return "";
    }
    else
    {
        //иначе возвращаем обратно с увеличением на 1
        int uv = Convert.ToInt32(schNow) + 1;
        File.WriteAllText(pathSchetchik, uv.ToString());
    }
}
 
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 792
Благодарностей
1 264
Баллы
113
если я всё верно понял, можно создать txt файл, куда записывать цифры от 1 до 10. Пускай каждый шаблон берет строку с удалением, а по окончании работы (по bad и good end) возвращает взятую цифру обратно. Тот же, кому попадется та же 10, будет выполнять что нужно. Т.к. шаблоны работают непрерывно цифра 10 будет как правило попадаться разным шаблонам (а не одному и тому же).
Мысль хорошая, но нужно после того как какой нибудь из шаблонов поймал нужное значение надо возвращать их работу на новый цикл. т.е к примеру ставим в счетчик значение 10 и отсчитываем -1 дойдя до 0 возвращаем значение 10 и т.д.

ещё можешь так попробовать:
По моему то что нужно, попробую. Спасибо!
 

one

Client
Регистрация
22.09.2015
Сообщения
6 792
Благодарностей
1 264
Баллы
113
  • Спасибо
Реакции: volody00

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)