0
fangen habe ich ein Feuer und vergessen Verfahren (seine dort für Legacy-Zwecke),kann nicht async/await Aufgabe Ausnahme
BackgroundWorker.Run(() => {
// my code here that throws an error
});
Ich möchte nicht BackgroundWorker.Run
erwarten. Hier ist meine Klasse,
public class BackgroundWorker
{
public static Task Run(Action action)
{
return new IISBackgroundTask().DoWorkAsync(action);
}
class IISBackgroundTask : IRegisteredObject
{
public IISBackgroundTask()
{
HostingEnvironment.RegisterObject(this);
}
void IRegisteredObject.Stop(bool immediate)
{
if (_task.IsCompleted || _task.IsCanceled || _task.IsFaulted || immediate)
{
HostingEnvironment.UnregisterObject(this);
}
}
public async Task DoWorkAsync(Action action)
{
try
{
_task = Task.Run(action);
await _task;
}
catch (AggregateException ex)
{
// Log exceptions
foreach (var innerEx in ex.InnerExceptions)
{
Logger.Log(innerEx);
}
}
catch (Exception ex)
{
Logger.Log(ex);
}
}
private Task _task;
}
}
Ich bin nicht in der Lage, Ausnahme zu fangen.
Update: Wenn ich hinzufügen, erwarten bei BackgroundWorker.Run
dann wird es funktionieren, aber ich möchte Feuer und vergessen.
Welche Art von Ausnahme verwenden, fest, könnten Sie die Ausnahme Informationen hinterlassen bitte? – KimKulling
@KimKulling Null Ausnahme bei '// mein Code hier, der einen Fehler' – user960567
"Feuer und ** vergessen **" wörtlich * bedeutet * "Ich bin nicht auf Ausnahmen". –