forked from MoonsideGames/MoonWorks
only check video exception on thread fault
parent
bf3ad0c8b0
commit
36ddb03d8f
|
@ -174,7 +174,7 @@ namespace MoonWorks.Video
|
|||
}
|
||||
|
||||
currentFrame = thisFrame;
|
||||
Task.Run(CurrentStream.ReadNextFrame).ContinueWith(HandleTaskException);
|
||||
Task.Run(CurrentStream.ReadNextFrame).ContinueWith(HandleTaskException, TaskContinuationOptions.OnlyOnFaulted);
|
||||
}
|
||||
|
||||
if (CurrentStream.Ended)
|
||||
|
@ -182,7 +182,7 @@ namespace MoonWorks.Video
|
|||
timer.Stop();
|
||||
timer.Reset();
|
||||
|
||||
Task.Run(CurrentStream.Reset).ContinueWith(HandleTaskException);
|
||||
Task.Run(CurrentStream.Reset).ContinueWith(HandleTaskException, TaskContinuationOptions.OnlyOnFaulted);
|
||||
|
||||
if (Loop)
|
||||
{
|
||||
|
@ -260,8 +260,8 @@ namespace MoonWorks.Video
|
|||
|
||||
private void InitializeDav1dStream()
|
||||
{
|
||||
Task.Run(Video.StreamA.Reset).ContinueWith(HandleTaskException);
|
||||
Task.Run(Video.StreamB.Reset).ContinueWith(HandleTaskException);
|
||||
Task.Run(Video.StreamA.Reset).ContinueWith(HandleTaskException, TaskContinuationOptions.OnlyOnFaulted);
|
||||
Task.Run(Video.StreamB.Reset).ContinueWith(HandleTaskException, TaskContinuationOptions.OnlyOnFaulted);
|
||||
|
||||
CurrentStream = Video.StreamA;
|
||||
currentFrame = -1;
|
||||
|
@ -269,10 +269,7 @@ namespace MoonWorks.Video
|
|||
|
||||
private static void HandleTaskException(Task task)
|
||||
{
|
||||
if (task.Exception != null)
|
||||
{
|
||||
throw task.Exception;
|
||||
}
|
||||
throw task.Exception;
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
|
|
Loading…
Reference in New Issue