Я новичок в использовании задачи в C#, у меня есть этот метод:Завершить задачу в C# приложении
public async void GetAnimateur(Action<List<fsign_fiche_signaletique>, Exception> callback)
{
try
{
Task<List<fsign_fiche_signaletique>> data = (Task<List<fsign_fiche_signaletique>>)Task.Run(
() =>
{
DataEntities _db = new DataEntities();
_db.Configuration.LazyLoadingEnabled = false;
var dpcs = _db.fsign_fiche_signaletique.ToList();
return new List<fsign_fiche_signaletique>(dpcs);
});
var result = await data;
callback(result, null);
}
catch (Exception ex)
{
callback(null, ex);
}
}
Мне нужно знать, как я могу остановить выполнение задачи и убить его тему после окончания обработки.
Просто FYI, вы только [должны использовать async void в особых ситуациях] (https://msdn.microsoft.com/en-us/magazine/jj991977.aspx). Кроме того, что вы имеете в виду, убивая его потоки? Задача должна обрабатывать все это для вас (если она вообще использует новый поток, это может и не быть). Чего вы пытаетесь достичь? –
TPL позаботится о возврате потока в threadpool для вас. Нет необходимости явно что-то прекращать. –
@GeorgeMauer Мне просто нужно, чтобы задача выполнялась только один раз –