我是新来的异步编程,我想知道如果你可以假冒c#异步方法,使其工作像它的同步?或者如果你可以让它在执行另一种方法之前等待它完成?Windows Phone 8使异步方法的行为像它的同步
在我的情况:
await Speak("Do you want me to call 123 ?");
if (isComplete)
{
PhoneCallTask phone = new PhoneCallTask();
phone.PhoneNumber = "123";
phone.Show();
}
await Speak("blabla");
isComplete是全球性的布尔..
这里是讲方法:
private async Task Speak(string text)
{
SpeechSynthesizer synth = new SpeechSynthesizer();
await synth.SpeakTextAsync(text);
isComplete = true;
}
它说第一个文本,不是显示对话框..后对话框它的坠毁晕..
为什么你想这样做多久?异步方法的目的是异步工作。 – Sam 2014-09-11 06:35:37
我正在使用文本到语音,然后显示一些调用对话框,当我显示调用对话框应用程序崩溃时,因为此对话因为它的异步而打破了语音..那就是为什么我想等待语音完成,然后运行调用对话框.. – n32303 2014-09-11 06:37:29
噢好吧。你在使用SpeechSynthesizer吗? – Sam 2014-09-11 06:41:41