У меня следующий сценарий:
Когда вводится команда (для теста, это консольное приложение, когда оно готово, я надеюсь, что это будет WebService), я выполняю некоторый код, и когда требуется дальнейший ввод данных пользователемЯ немедленно возвращаюсь к интерпретатору команд.Когда дается новый ввод, я хочу возобновить обработку с того места, где я его оставил.Это так похоже на шаблон асинхронного ожидания c # 5, что я решил попробовать.Я думал об этом:
public void CommandParser()
{
while(true)
{
string s = Console.ReadLine();
if (s == "do_something")
Execute();
else if (s == "give_parameters")
SetParameters();
//...
}
}
MySettings input;
public async void Execute()
{
//do stuff here
MyResult result = null
if (/*input needed*/){
input = new MySetting();
result = await input.Calculate();
}
else { /* fill result synchronously*/}
//do something with result here
}
public void SetParameters()
{
if (input!=null)
input.UseThis("something"); //now it can return from await
}
Теперь мой вопрос, как написать MySettings.Calculate и MySettings.UseThis?Как вернуть Задание из первого и как сигнализировать о готовности со второго?Я пробовал много заводских методов для Task, но я не могу найти правильный!Пожалуйста, помогите!