我只是搞乱了我的第一个wpf应用程序,我实现的其中一个是插入排序。我有一个排序方法运行ASync到应用程序的其余部分,以免冻结应用程序的其余部分。我正在尝试实现一个进度条,以显示计算机的排序程度,但没有运气。
所以我猜它不喜欢在另一个核心中调用一个项目,我是对的吗? 如何解决此问题,并使进度条工作?
以下是代码
谢谢!
InsertionSort方法:
private int[] performInsertionSort(int[] inputarray)
{
for (int i = 0; i < inputarray.Length - 1; i++)
{
int j = i + 1;
while (j > 0)
{
if (inputarray[j - 1] > inputarray[j])
{
int temp = inputarray[j - 1];
inputarray[j - 1] = inputarray[j];
inputarray[j] = temp;
}
j--;
int RealJ = inputarray.Length - j;
ProgB.Value = inputarray.Length / RealJ * 100;
}
}
return inputarray;
}
启动InsertionSort方法的按钮的事件处理程序:
private void button_Click(object sender, RoutedEventArgs e)
{
int SInt;
if (Int32.TryParse(textBox0.Text, out SInt))
Console.WriteLine(SInt);
else
Console.WriteLine("S String could not be parsed.");
int[] SortList = new int[SInt];
Random randNum = new Random();
foreach (int value in SortList)
{
randNum.Next(0, 999999);
}
new Task(() => { performInsertionSort(SortList); }).Start();
//performInsertionSort(SortList);
}