Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 21.08.2015
Сообщений: 16

Выполнить существующий код, через заданный интервал

17.04.2016, 08:46. Показов 1669. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Дано:
Есть в наличии 2 файла, первый выполняется единыжды, второй выполняется по интервалу.

1)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using OpenRA.Primitives;
using OpenRA.Traits;
 
namespace OpenRA.Mods.Common.Traits
{
    [Desc("Player receives a unit for free once the building is placed. This also works for structures.",
        "If you want more than one unit to appear copy this section and assign IDs like FreeActor@2, ...")]
    public class FreeActorInfo : ITraitInfo
    {
        [ActorReference, FieldLoader.Require]
        [Desc("Name of the actor.")]
        public readonly string Actor = null;
 
        [Desc("Offset relative to the top-left cell of the building.")]
        public readonly CVec SpawnOffset = CVec.Zero;
 
        [Desc("Which direction the unit should face.")]
        public readonly int Facing = 0;
 
        public virtual object Create(ActorInitializer init) { return new FreeActor(init, this); }
    }
 
    public class FreeActor
    {
        public FreeActor(ActorInitializer init, FreeActorInfo info)
        {
            if (init.Contains<FreeActorInit>() && !init.Get<FreeActorInit>().ActorValue)
                return;
 
            init.Self.World.AddFrameEndTask(w =>
            {
                w.CreateActor(info.Actor, new TypeDictionary
                {
                    new ParentActorInit(init.Self),
                    new LocationInit(init.Self.Location + info.SpawnOffset),
                    new OwnerInit(init.Self.Owner),
                    new FacingInit(info.Facing),
                });
            });
        }
    }
 
    public class FreeActorInit : IActorInit<bool>
    {
        [FieldFromYamlKey]
        public readonly bool ActorValue = true;
        public FreeActorInit() { }
        public FreeActorInit(bool init) { ActorValue = init; }
        public bool Value(World world) { return ActorValue; }
    }
 
    public class ParentActorInit : IActorInit<Actor>
    {
        public readonly Actor ActorValue;
        public ParentActorInit(Actor parent) { ActorValue = parent; }
        public Actor Value(World world) { return ActorValue; }
    }
}
2)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Linq;
using OpenRA.Traits;
 
namespace OpenRA.Mods.Common.Traits
{
    [Desc("Lets the actor spread resources around it in a circle.")]
    class SeedsResourceInfo : UpgradableTraitInfo
    {
        public readonly int Interval = 75;
        public readonly string ResourceType = "Ore";
        public readonly int MaxRange = 100;
 
        public override object Create(ActorInitializer init) { return new SeedsResource(init.Self, this); }
    }
 
    class SeedsResource : UpgradableTrait<SeedsResourceInfo>, ITick, ISeedableResource
    {
        readonly SeedsResourceInfo info;
 
        readonly ResourceType resourceType;
        readonly ResourceLayer resLayer;
 
        public SeedsResource(Actor self, SeedsResourceInfo info)
            : base(info)
        {
            this.info = info;
 
            resourceType = self.World.WorldActor.TraitsImplementing<ResourceType>()
                .FirstOrDefault(t => t.Info.Name == info.ResourceType);
 
            if (resourceType == null)
                throw new InvalidOperationException("No such resource type `{0}`".F(info.ResourceType));
 
            resLayer = self.World.WorldActor.Trait<ResourceLayer>();
        }
 
        int ticks;
 
        public void Tick(Actor self)
        {
            if (IsTraitDisabled)
                return;
 
            if (--ticks <= 0)
            {
                Seed(self);
                ticks = info.Interval;
            }
        }
 
        public void Seed(Actor self)
        {
            var cell = Util.RandomWalk(self.Location, self.World.SharedRandom)
                .Take(info.MaxRange)
                .SkipWhile(p => !self.World.Map.Contains(p) ||
                    (resLayer.GetResource(p) == resourceType && resLayer.IsFull(p)))
                .Cast<CPos?>().FirstOrDefault();
 
            if (cell != null && resLayer.CanSpawnResourceAt(resourceType, cell.Value))
                resLayer.AddResource(resourceType, cell.Value, 1);
        }
    }
}
Задача:
скопировать из второго файла код, отвечающий за интервал и вставить в первый,
так, чтобы если значение интервала явно не указано, то код должен выполняться один раз,
а если указано, то через промежуток указанный в интервале.

Помогите пожалуйста правильно это сделать, не повредив структуру языка.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.04.2016, 08:46
Ответы с готовыми решениями:

Refresh страницы через заданный интервал времени
Написанна страница на asp.net которая выводит данные через gridview, как сделать так чтобы произходил refresh страницы через заданный...

Копирование значений ячеек через заданный интервал
Добрый день, необходимо перенести определенные ячейки из одной книги в другую с определенным интервалов ( через 4 ячейки): A22=A5 ...

Очистка всех таблиц в БД MS SQL Server через заданный интервал
Как сделать очистку всех таблиц в БД MS SQL Server через заданный интервал либо при наступление определенной даты???

21
0 / 0 / 0
Регистрация: 21.08.2015
Сообщений: 16
25.04.2016, 09:45  [ТС]
Студворк — интернет-сервис помощи студентам
всё настолько сложно?
может быть тип таймера не тот?
0
0 / 0 / 0
Регистрация: 21.08.2015
Сообщений: 16
26.04.2016, 19:20  [ТС]
апап
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2016, 19:20

Поочередно передавать текст в textBox1 через заданный интервал времени
Ребята подскажите пожалуйста! Нужно в поле textBox1 сначала передавать текст 1 и через к примеру 15 секунд передавать текст 2, написал...

Как сделать событие, происходящее через заданный интервал времени, например 5 сек.?
Просто subj, собственно.

Как разбить заданные диапазон времени на маленькие промежутки через заданный интервал
Привет всем! пожалуйста подскажите как сделать следующее: есть форма для ввода времени начала события, времени конца события и...

После третьего клика по компоненту выполнить заданный код
когда пользователь кликнул на компонент ну допустим На edit три раза пусть тогда выполняется код после третьего клика на компонент...

Выполнить действие через заданный промежуток времени
Как сделать так, чтобы через каждый промежуток времени(15мин) выполнялось определённое действие?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru