Browse Source

fix(Animation): fix Issue #11156 System.InvalidOperationException: Call from invalid thread

pull/11174/head
Giuseppe Lippolis 4 years ago
parent
commit
110b536738
  1. 12
      src/Avalonia.Base/Animation/Animation.cs

12
src/Avalonia.Base/Animation/Animation.cs

@ -200,7 +200,7 @@ namespace Avalonia.Animation
/// </summary> /// </summary>
/// <param name="setter">The animation setter.</param> /// <param name="setter">The animation setter.</param>
/// <param name="value">The property animator value.</param> /// <param name="value">The property animator value.</param>
public static void SetAnimator(IAnimationSetter setter, public static void SetAnimator(IAnimationSetter setter,
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor | DynamicallyAccessedMemberTypes.PublicMethods)] [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor | DynamicallyAccessedMemberTypes.PublicMethods)]
Type value) Type value)
{ {
@ -319,7 +319,7 @@ namespace Avalonia.Animation
if (animators.Count == 1) if (animators.Count == 1)
{ {
var subscription = animators[0].Apply(this, control, clock, match, onComplete); var subscription = animators[0].Apply(this, control, clock, match, onComplete);
if (subscription is not null) if (subscription is not null)
{ {
subscriptions.Add(subscription); subscriptions.Add(subscription);
@ -348,9 +348,11 @@ namespace Avalonia.Animation
if (onComplete != null) if (onComplete != null)
{ {
Task.WhenAll(completionTasks!).ContinueWith( Task.WhenAll(completionTasks!)
(_, state) => ((Action)state!).Invoke(), .ContinueWith((_, state) => ((Action)state!).Invoke()
onComplete); , onComplete
, TaskScheduler.FromCurrentSynchronizationContext()
);
} }
} }
return new CompositeDisposable(subscriptions); return new CompositeDisposable(subscriptions);

Loading…
Cancel
Save