【发布时间】:2015-05-07 11:16:33
【问题描述】:
在函数中使用“await”操作符时会抛出异常,如下所示:
“await”运算符只能在异步方法中使用。 考虑使用“异步”修饰符标记此方法并将其返回类型更改为“任务”。
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
int snooze;
string audioSrc;
int year = datepicker.Date.Year;
int month = datepicker.Date.Month;
int day = datepicker.Date.Day;
int hour = timepicker.Time.Hours;
int min = timepicker.Time.Minutes;
int sec = timepicker.Time.Seconds;
// string audioSrc = alrm_sound.SelectionBoxItem.ToString();
try
{
snooze = Convert.ToInt16(CustomSnoozeTime.SelectionBoxItem.ToString());
}
catch
{
snooze = 5;
}
try
{
audioSrc = alrm_sound.SelectionBoxItem.ToString();
}
catch
{
audioSrc = "Default";
}
DateTime myDate1 = new DateTime(year, month, day, hour, min, sec);
DateTime myDate2 = DateTime.Now;
TimeSpan myDateResult = new TimeSpan();
myDateResult = myDate1 - myDate2;
if (myDate2 > myDate1)
{
var x = new MessageDialog("Invalid date or time");
await x.ShowAsync();
}
else
{
string title = "Alarm!";
string message = alm_msg.Text;
string imgURL = "ms-appx:///Assets/Capture.PNG";
string toastXmlString =
"<toast><visual version='1'><binding template='toastImageAndText02'><text id='1'>"
+ title + "</text><text id='2'>"
+ message + "</text><image id='1' src='" + imgURL + "'/></binding></visual>\n" +
"<commands scenario=\"alarm\">\n" +
"<command id=\"snooze\"/>\n" +
"<command id=\"dismiss\"/>\n" +
"</commands>\n" +
"<audio src='ms-winsoundevent:Notification." + audioSrc + "'/>" +
"</toast>";
Windows.Data.Xml.Dom.XmlDocument toastDOM = new Windows.Data.Xml.Dom.XmlDocument();
toastDOM.LoadXml(toastXmlString);
var toastNotifier1 = Windows.UI.Notifications.ToastNotificationManager.CreateToastNotifier();
double x1 = myDateResult.TotalSeconds;
int customSnoozeSeconds = snooze * 60;
TimeSpan snoozeInterval = TimeSpan.FromSeconds(customSnoozeSeconds);
var customAlarmScheduledToast = new Windows.UI.Notifications.ScheduledToastNotification(toastDOM, DateTime.Now.AddSeconds(x1), snoozeInterval, 0);
toastNotifier1.AddToSchedule(customAlarmScheduledToast);
var x = new MessageDialog("Alarm Set!");
await x.ShowAsync();
}
}
catch
{ }
}
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
int snooze;
string audioSrc;
int year = datepicker.Date.Year;
int month = datepicker.Date.Month;
int day = datepicker.Date.Day;
int hour = timepicker.Time.Hours;
int min = timepicker.Time.Minutes;
int sec = timepicker.Time.Seconds;
// string audioSrc = alrm_sound.SelectionBoxItem.ToString();
try
{
snooze = Convert.ToInt16(CustomSnoozeTime.SelectionBoxItem.ToString());
}
catch
{
snooze = 5;
}
try
{
audioSrc = alrm_sound.SelectionBoxItem.ToString();
}
catch
{
audioSrc = "Default";
}
DateTime myDate1 = new DateTime(year, month, day, hour, min, sec);
DateTime myDate2 = DateTime.Now;
TimeSpan myDateResult = new TimeSpan();
myDateResult = myDate1 - myDate2;
if (myDate2 > myDate1)
{
var x = new MessageDialog("Invalid date or time");
await x.ShowAsync();
}
else
{
string title = "Alarm!";
string message = alm_msg.Text;
string imgURL = "ms-appx:///Assets/Capture.PNG";
string toastXmlString =
"<toast><visual version='1'><binding template='toastImageAndText02'><text id='1'>"
+ title + "</text><text id='2'>"
+ message + "</text><image id='1' src='" + imgURL + "'/></binding></visual>\n" +
"<commands scenario=\"alarm\">\n" +
"<command id=\"snooze\"/>\n" +
"<command id=\"dismiss\"/>\n" +
"</commands>\n" +
"<audio src='ms-winsoundevent:Notification." + audioSrc + "'/>" +
"</toast>";
Windows.Data.Xml.Dom.XmlDocument toastDOM = new Windows.Data.Xml.Dom.XmlDocument();
toastDOM.LoadXml(toastXmlString);
var toastNotifier1 = Windows.UI.Notifications.ToastNotificationManager.CreateToastNotifier();
double x1 = myDateResult.TotalSeconds;
int customSnoozeSeconds = snooze * 60;
TimeSpan snoozeInterval = TimeSpan.FromSeconds(customSnoozeSeconds);
var customAlarmScheduledToast = new Windows.UI.Notifications.ScheduledToastNotification(toastDOM, DateTime.Now.AddSeconds(x1), snoozeInterval, 0);
toastNotifier1.AddToSchedule(customAlarmScheduledToast);
var x = new MessageDialog("Alarm Set!");
await x.ShowAsync();
}
}
catch
{ }
}
【问题讨论】:
-
欢迎来到 Stack Overflow。您的问题没有任何图像。它也没有任何代码和解释。请阅读FAQ、How to Ask 和help center 作为开始..
-
等待 x.ShowAsync();该方法错误给出
标签: c# windows c#-4.0 windows-phone-8 windows-phone-8.1