【发布时间】:2017-01-03 09:44:48
【问题描述】:
我有一个简单的应用程序,它会告诉我一个范围内的素数数量:
private void btnMultiThread_Click(object sender, RoutedEventArgs e)
{
var numbers = Enumerable.Range(2, range - 1);
var totalPrimes = numbers
.AsParallel()
.Where(n => Enumerable.Range(2, (int)Math.Sqrt(n) - 1).All(i => n % i != 0))
.Count();
MessageBox.Show(totalPrimes.ToString());
}
问题是,当整个事情都在计算时,wpf 应用程序仍然没有响应:例如,我单击的按钮仍然被按下,应用程序窗口无法移动甚至关闭。
我该怎么做才能解决这个问题? 谢谢
【问题讨论】:
-
@RandomStranger 将一事无成。
async允许您等待。它不会让任何东西异步运行 -
@PanagiotisKanavos 我的错,删除了我的评论