Muszę wykonać długą operację procesu w wątku i kontynuować, zwracając wynik do funkcji. Oto mój kod:C# limit czasu zadania fabrycznego
Task<ProductEventArgs>.Factory.StartNew(() =>
{
try
{
// long operation which return new ProductEventArgs with a list of product
}
catch (Exception e)
{
return new ProductEventArgs() { E = e };
}
}).ContinueWith((x) => handleResult(x.Result), TaskScheduler.FromCurrentSynchronizationContext());
Problem polega na tym, że nie mam limitu czasu. Chcę ustawić zegar, aby zwrócić coś takiego:
new ProductEventArgs() { E = new Exception("timeout") };
, jeśli przekroczono limit czasu. Nie można użyć Czekaj/Asynchronizuj. Wielkie dzięki!
Kocham Cię: - * Jestem nieco nowy na C# i bardziej na zarządzaniu wątek i zrobić mój dzień! – Rototo