我是新來的異步編程,我想知道如果你可以假冒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