goto для state machine
От: Flem1234  
Дата: 22.04.11 11:44
Оценка:
Хочу сделать что-то типа континюэшенов, только которые сериализуюся и сохраняются на диск.

Но как сделать передачу управления внутри метода? goto в Немерле нет (или я просто не могу найти), а с неймед блоком не могу понять, как работать, и можно ли добиться чего-то похожего.

например преобразовывать:
workflow() : void
{
   WriteLine("Раз");
   save;             // Сохранили контекст
   WriteLine("Два");
}

в это:
workflow() : void
{
   __state = 1;
   when (__state == 1)  goto l1:
   when (__state == 2)  goto l2:
   l1:
   WriteLine("Раз");
   __state++; // save;
   // Тут сериализация и выход
   l2:
   WriteLine("Два");
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.