您好,在这里完全感到困惑!我不知道如何使我的方法在出现错误时播放系统声音(哔声)。system.media类不可用。所以我完全迷路了!
private void SubmitApplicant_Click(object sender, RoutedEventArgs e)
{
if (!string.IsNullOrEmpty(attendenceManagment.Applicant))
attendenceManagment.CheckApplicant();
else
//play a beep
;
}
Run Code Online (Sandbox Code Playgroud)
工作代码:
XAML标签
<MediaElement x:Name="myMediaElement"/>
Run Code Online (Sandbox Code Playgroud)
后面的代码
private void Button_Click(object sender, RoutedEventArgs e)
{
if (!string.IsNullOrEmpty(attendenceManagment.Applicant))
attendenceManagment.CheckApplicant();
else
{
myMediaElement.Source = new Uri("ms-appx:///Assets/Windows Error.wav");
myMediaElement.Play();
}
}
Run Code Online (Sandbox Code Playgroud) 我试图在我的班级中找到一个IO瓶颈,并且令人惊讶地注意到,当将1000000条消息写入文件时,sw.Write("m"); sw.Flush()可以快20000 await sw.WriteAsync("m"); Await sw.FlushAsync();.有没有人知道为什么?我的赌注是StreamWriter构造函数采用String不参数化流的async用法.
下面的代码可以从C#interactive启动.是的,它不是测量速度的最佳位置,但无论如何它都会显示出现在的问题:
var sr = new StreamWriter("G:\\file.file");
var N = 1000;
var sw = new Stopwatch();
sw.Start();
for (var i = 0; i < N; ++i)
{
sr.Write("m"); // or await sr.WriteAsync("m");
sr.Flush(); // or await sr.FlushAsync("m");
}
sw.Stop();
Console.WriteLine("Completed " + N
+ " iterations in " + sw.ElapsedMilliseconds + " milliseconds.");
sr.Close();
Run Code Online (Sandbox Code Playgroud)
从C#Interactive在家用PC上启动输出
在1毫秒内完成1000次迭代.
用于同步代码和
在43383毫秒内完成1000次迭代.
用于异步.
更新:我也注意到程序内部速度变慢了FlushAsync.WriteAsync几乎与同步版本的速度相同.
欢迎所有评论. …