我正在尝试使用以下代码行(在C ++中)
SpeechSynthesisStream speechStream = co_await synth.SynthesizeTextToStreamAsync(wtext);
从主线程调用时,此代码可以正常工作。
但是,当我尝试从其他线程调用它时,它永远不会完成。
我有最奇怪的行为,如果我这样做的话:
auto streamOp = synth.SynthesizeTextToStreamAsync(wtext);
while (true)
{
if(streamOp.Status()==winrt::Windows::Foundation::AsyncStatus::Completed)
{
//here
break;
}
}
我确实到达了“此处”,在这种情况下
SpeechSynthesisStream speechStream = streamOp.GetResults()
似乎有效。
这种行为可能是什么原因?
PS:如果我使用WinRT线程系统(“ co_await”和“ resume_background”),而不是我自己的线程系统,则代码可以正常工作并完成。
谢谢