У меня есть элемент управления диаграммой MS. Я создаю отдельный поток, чтобы заполнить его точками, и после построения каждой точки я помещал нить в сон в течение некоторого времени, а затем закладывал следующую точку, чтобы график выглядел как его перемещение. Вот код.Приостановить задачу при создании события
Task[] t = new Task[1];
t[0] = Task.Factory.StartNew(() => plotChartPoints());
public void plotPoint(int x, double y, int series)
{
comparisonChart.Series[series].Points.AddXY(x, y);
}
public void refreshChart()
{
this.mainSplitContainer.Panel2.Refresh();
}
public void plotChartPoints()
{
//comparisonChart.Series[0].Points.DataBindXY(xValuesSeries1.ToArray(), yValuesSeries1.ToArray());
//comparisonChart.Series[1].Points.DataBindXY(xValuesSeries2.ToArray(), yValuesSeries2.ToArray());
for (int index = 0; index < xValuesSeries1.Count; index++)
{
if (comparisonChart.InvokeRequired)
{
comparisonChart.Invoke(new MethodInvoker(() => plotPoint(xValuesSeries1.ElementAt(index), yValuesSeries1.ElementAt(index), 0)));
comparisonChart.Invoke(new MethodInvoker(() => plotPoint(xValuesSeries2.ElementAt(index), yValuesSeries2.ElementAt(index), 1)));
}
Thread.Sleep(50);
if (this.mainSplitContainer.InvokeRequired)
{
mainSplitContainer.Invoke(new MethodInvoker(()=> refreshChart()));
}
}
}
Теперь я хочу, чтобы добавить кнопку так, чтобы при нажатии на кнопку задачи, которая Наполнение диаграммы пауз и диаграмма замерзает. Как это сделать? Я использую .NET 4.0, и я не вижу какого-либо метода для приостановки задачи в классе Task
Просто небольшой запрос. Вы указываете, что я создаю отдельный поток, чтобы заполнить его. Однако я уверен, что новая 'Task' не всегда гарантирует создание нового потока. – MattC
Можете ли вы использовать VS2012 + и ['Microsoft.Bcl.Async'] (http://www.nuget.org/packages/microsoft.bcl.async)? – Noseratio