@Coline

Подойдёт ли мне сериализация?

Есть своего рода интерпретатор. Он принимает список команд на исполнение, выполняет их, и может быть прерван из вне. Необходимо возобновлять работу интерпретатора с прерванного места, даже если оно произошло в момент выполнения команды. Например если команда какая-то такая
void Command()
{
    Console.WriteLine("1");
    *прерывание*
    Console.WriteLine("2");
}

То интерпретатор при повторном запуске должен вывести в консоль "2" и двигаться дальше по списку переданных команд.
Сохранять состояние интерпретатора надо в byte[]. Деталь в том, что прерывания - это абсолютно нормальная штука. Она происходит каждые ~5 команд. Следовательно, должно работать быстро. Вот собственно в этом мой вопрос - сериализация целесообразна для решения задачи?
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
twobomb
@twobomb
Чёт не совсем понял, а что нельзя эти команды бросить на отдельный поток и тормозить\возообновлять его через Suspend\Resume? И зачем запоминать
Типа такого
public static void Main()
        {

            Thread t = new Thread(new ThreadStart(command));
            t.Start();
            Thread.Sleep(5000);
            t.Suspend();
            Thread.Sleep(5000);
            t.Resume();
            Console.ReadKey();
        }
        public static void command(){
            for (var i = 0; i < 10; i++)
            {
                Console.WriteLine(i.ToString());
                Thread.Sleep(1000);
            }
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы