我有以下场景:
当输入命令时(测试时是控制台应用程序,准备好后希望它成为 WebService),我执行一些代码,并且当需要进一步的用户输入时,我立即返回到命令解释器。当给出新的输入时,我希望处理从我离开的地方继续进行。这听起来很像 C#5 的异步等待模式,所以我决定尝试一下。
我考虑了这个:
现在我的问题是,如何编写 MySettings.Calculate 和 MySettings.UseThis?如何从第一个方法返回一个 Task 并从第二个方法发出就绪信号?我尝试了许多 Task 工厂方法,但找不到正确的方法!请帮忙!
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 并从第二个方法发出就绪信号?我尝试了许多 Task 工厂方法,但找不到正确的方法!请帮忙!