Ich habe eine Funktion, die 35 Aufgabe für Berechnung von Rechnungen generieren.Aufgabe in asp.net abbrechen
Mein Code:
public int CalcGroup()
{
try
{
CancellationTokenSource cts = new CancellationTokenSource();
CancellationToken ct = cts.Token;
for (int i = 0; i < 35 ; i++)
{
var myTask = new Task<long>(() => CalcSingle(_personnelIds.Item1), ct, TaskCreationOptions.LongRunning);
myTask.Start();
}
}
catch (Exception)
{
return 0;
}
return 1;
}
"CalcSingle() ist eine weitere Funktion, die Aufgaben daran zu arbeiten." und meine Veranstaltung, die Aufgaben für annullieren:
protected void btnStopCalc_Click(object sender, EventArgs e)
{
CancellationTokenSource cts = new CancellationTokenSource();
cts.Cancel();
}
Es ist nicht richtig
Sie erstellen ein neues Objekt und rufen Cancel anstelle des aktuellen auf? –
Ja, meine Funktion in der DAL-Schicht und Aufrufe von UI abbrechen. Ist das nicht möglich? –
Sie müssen Cts speichern, wo Sie Cancel aufrufen können. Als ein Feld. Dann verwenden Sie keine neue CancellationTokenSource in Ihrem Klick-Handler, sondern verwenden stattdessen dieses Feld. –