Browse Source

Merge pull request #11174 from workgroupengineering/fixes/Issue_11156

fix(Animation): fix Issue #11156 Call from invalid thread
pull/11158/head
Max Katz 4 years ago
committed by GitHub
parent
commit
8a23ed7665
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  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