0
次のコードでは、条件の一致をtimer_tickイベントで確認して、テキストと音声の再生をトリガーします。しかし条件が満たされると、結果は期待通りに得られるが、プログラムはフリーズする。Timer_Tickはプログラムをフリーズします
また、これらの条件が一致したときにポップアップメッセージボックスを追加する方法。オーディオファイルやスピーチを繰り返しても問題ありませんが、タイマーティックのように繰り返しメッセージボックスを開くことは望ましくありません。
private void timer1_Tick(object sender, EventArgs e)
{
label_time1.Text = DateTime.Now.ToString("hh:mm:ss tt");
label6.Text = DateTime.Now.ToShortDateString();
if (((DateTime.Now.ToString("hh:mm tt") == (textBox_ordertostart.Text) && (DateTime.Now.ToShortDateString() == dateTimePicker2.Value.ToShortDateString()) && (checkBox_delivery.CheckState == 0) && (checkBox_pickup.CheckState != 0))))
{
comboBox_suburb.Enabled = false;
checkBox_delivery.Enabled = false;
mplayer = new SoundPlayer(WindowsFormsApplication17.Properties.Resources.good_morning);
mplayer.Play();
pbuilder.ClearContent();
pbuilder.AppendText("Pickup order time start now");
txt2speech.Speak(pbuilder);
pbuilder.AppendBreak(PromptBreak.Medium);
}
[SpeechSynthesizerクラス](https://msdn.microsoft.com/en-us/library/office/system.speech.synthesis.speechsynthesizer.aspx)を使用していますか?もしそうなら、 'Speak'の代わりに' SpeakAsync'を試してください。 – adv12
それはすばらしいおかげです。メッセージボックスに関する考え方は? –