Animation Xamarin表单动画过载错误?

Animation Xamarin表单动画过载错误?,animation,xamarin,xamarin.ios,xamarin.android,xamarin.forms,Animation,Xamarin,Xamarin.ios,Xamarin.android,Xamarin.forms,当涉及到Xamarin形式的连续和/或同时动画(自定义或其他)的数量时,是否存在某种限制 下面是我正在处理的一个简单示例: protected void ShowAlertMessage(string message) { lblAlertMessage.Text = message; this.AbortAnimation("AlertShow"); // crash happens with and without this...

当涉及到Xamarin形式的连续和/或同时动画(自定义或其他)的数量时,是否存在某种限制

下面是我正在处理的一个简单示例:

    protected void ShowAlertMessage(string message)
    {
        lblAlertMessage.Text = message;

        this.AbortAnimation("AlertShow"); // crash happens with and without this...

        new Animation {
            { 0, 0.1, new Animation(v => AlertView.Opacity = v, 0.0, 1.0) },
            { 0.1, 0.6, new Animation(v => AlertView.Opacity = v, 1.0, 1.0) },
            { 0.6, 1.0, new Animation(v => AlertView.Opacity = v, 1.0, 0) },
        }.Commit(this, "AlertShow", length: 3000);
    }
动画本身运行良好。AlertView视图淡入、维持,然后淡出。动画完成后,我再次调用该函数,它工作正常。当ActVIEW处于运行动画的中间时,我再次调用该函数,它仍然很好,它重新启动动画。但是,如果我将调用ShowAlertMessage()的按钮以极快的速度捣乱,那么iPhone emulator就会崩溃,并出现以下堆栈跟踪(我包括了整个过程……当一个新线程在封面下启动时,看起来可能会发生一些事情……):

2017-06-24 12:20:37.595 RootTuner.iOS[19386:887418]关键:堆栈跟踪:
2017-06-24 12:20:37.596 RootTuner.iOS[19386:887418]临界:在
2017-06-24 12:20:37.596 RootTuner.iOS[19386:887418]严重:at(包装管理为本机)ObjCRuntime.Messaging.void_objc_msgSend_float(intptr,intptr,single)[0x0000b]in:0
2017-06-24 12:20:37.597 RootTuner.iOS[19386:887418]临界:在/Users/builder/data/lanes/4691/d2270eec/source/xamarin macios/src/build/iOS/native/CoreAnimation/CALayer.g.cs:1714中的CoreAnimation.CALayer.set_不透明度(单个)[0x0000b]
2017-06-24 12:20:37.597 RootTuner.iOS[19386:887418]临界:在Xamarin.Forms.Platform.iOS.VisualElementTracker/c_u显示类23_0.b_u0()[0x0015a]中的c:\BuildAgent\work\ca3766cfc22354a1\Xamarin.Forms.platforms.platforms.iOS\VisualElementTracker.cs:178
2017-06-24 12:20:37.597 RootTuner.iOS[19386:887418]临界:位于C:\BuildAgent\work\ca3766cfc22354a1\Xamarin.Forms.Platform.iOS\CADisplayLinkTicker.StartThread()[0x00025]中的Xamarin.Forms.playlinkticker.cs:60
2017-06-24 12:20:37.598 RootTuner.iOS[19386:887418]临界:在/Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/System/Threading/thread.cs:68中的System.Threading/start_上下文(对象)[0x00014]
2017-06-24 12:20:37.598 RootTuner.iOS[19386:887418]严重:位于System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)[0x00071]在/Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:957中
2017-06-24 12:20:37.598 RootTuner.iOS[19386:887418]临界:在System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)[0x00000]in/Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/System/Threading/ExecutionContext.cs:904
2017-06-24 12:20:37.598 RootTuner.iOS[19386:887418]临界:在System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,object)[0x0002b]in/Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/System/Threading/ExecutionContext.cs.cs:893
2017-06-24 12:20:37.599 RootTuner.iOS[19386:887418]关键:在/Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/System/Threading/thread.cs:105中的System.thread.thread.start()[0x00008]
2017-06-24 12:20:37.599 RootTuner.iOS[19386:887418]严重:at(包装器运行时调用)object.runtime_invoke_void_this____(object,intptr,intptr,intptr)[0x0004f]in:0
2017-06-24 12:20:37.599 RootTuner.iOS[19386:887418]严重:
本机堆栈跟踪:
2017-06-24 12:20:37.606 RootTuner.iOS[19386:887418]严重:0 RootTuner.iOS 0x000000010fdfc501 mono\u handle\u native\u崩溃+257
2017-06-24 12:20:37.607 RootTuner.iOS[19386:887418]严重:1 RootTuner.iOS 0x000000010fe095d0单声道信号处理器+288
2017-06-24 12:20:37.607 RootTuner.iOS[19386:887418]严重:2 libsystem_platform.dylib 0x000000011bbba_sigtramp+26
2017-06-24 12:20:37.607 RootTuner.iOS[19386:887418]严重:3???0x0000000000000000 0x0+0
2017-06-24 12:20:37.607 RootTuner.iOS[19386:887418]临界:4夸脱核心0x000000011dc0a9ab\u ZL18CAAnimation\u setterp1caanimation J12\u CAValueTypePKv+169
2017-06-24 12:20:37.608 RootTuner.iOS[19386:887418]临界:5夸脱核心0x000000011dc03d5a-[CAAnimation setDelegate:+30
2017-06-24 12:20:37.608 RootTuner.iOS[19386:887418]临界:6 UIKit 0x0000000114057c39-[UIViewAnimationState SetAnimationAttribute:correctZeroDuration:SkipDeleteAssignment:customCurve:+1094
2017-06-24 12:20:37.609 RootTuner.iOS[19386:887418]临界:7 UIKit 0x0000000114054475-[UIViewAnimationState animationForLayer:forKey:forView:+1195
2017-06-24 12:20:37.609 RootTuner.iOS[19386:887418]临界:8 UIKit 0x0000000114055178-[UIViewAnimationState actionForLayer:forKey:forView:+99
2017-06-24 12:20:37.609 RootTuner.iOS[19386:887418]临界:9 UIKit 0x000000011408052e+[UIView(动画)\u defaultUIViewActionForLayer:forKey:+111
2017-06-24 12:20:37.609 RootTuner.iOS[19386:887418]临界:10 UIKit 0x000000011485e8ec-[UIView(UIKitManual)操作层:forKey:+119
2017-06-24 12:20:37.610 RootTuner.iOS[19386:887418]临界:11夸脱核心0x000000011dbda4bc-[CALayer actionForKey:][437
2017-06-24 12:20:37.610 RootTuner.iOS[19386:887418]临界值:12夸脱核心0x000000011dbd5ade\u ZL12actionForKeyP7CALayerPN2CA11TransactionEP8NSString+76
2017-06-24 12:20:37.610 RootTuner.iOS[19386:887418]
2017-06-24 12:20:37.595 RootTuner.iOS[19386:887418] critical: Stacktrace:

2017-06-24 12:20:37.596 RootTuner.iOS[19386:887418] critical:   at <unknown> <0xffffffff>
2017-06-24 12:20:37.596 RootTuner.iOS[19386:887418] critical:   at (wrapper managed-to-native) ObjCRuntime.Messaging.void_objc_msgSend_float (intptr,intptr,single) [0x0000b] in <58a9bd8a3cbb4d0092bc0a767ff66c0f>:0
2017-06-24 12:20:37.597 RootTuner.iOS[19386:887418] critical:   at CoreAnimation.CALayer.set_Opacity (single) [0x0000b] in /Users/builder/data/lanes/4691/d2270eec/source/xamarin-macios/src/build/ios/native/CoreAnimation/CALayer.g.cs:1714
2017-06-24 12:20:37.597 RootTuner.iOS[19386:887418] critical:   at Xamarin.Forms.Platform.iOS.VisualElementTracker/<>c__DisplayClass23_0.<OnUpdateNativeControl>b__0 () [0x0015a] in C:\BuildAgent\work\ca3766cfc22354a1\Xamarin.Forms.Platform.iOS\VisualElementTracker.cs:178
2017-06-24 12:20:37.597 RootTuner.iOS[19386:887418] critical:   at Xamarin.Forms.Platform.iOS.CADisplayLinkTicker.StartThread () [0x00025] in C:\BuildAgent\work\ca3766cfc22354a1\Xamarin.Forms.Platform.iOS\CADisplayLinkTicker.cs:60
2017-06-24 12:20:37.598 RootTuner.iOS[19386:887418] critical:   at System.Threading.ThreadHelper.ThreadStart_Context (object) [0x00014] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/system/threading/thread.cs:68
2017-06-24 12:20:37.598 RootTuner.iOS[19386:887418] critical:   at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:957
2017-06-24 12:20:37.598 RootTuner.iOS[19386:887418] critical:   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:904
2017-06-24 12:20:37.598 RootTuner.iOS[19386:887418] critical:   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) [0x0002b] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:893
2017-06-24 12:20:37.599 RootTuner.iOS[19386:887418] critical:   at System.Threading.ThreadHelper.ThreadStart () [0x00008] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.36/src/mono/mcs/class/referencesource/mscorlib/system/threading/thread.cs:105
2017-06-24 12:20:37.599 RootTuner.iOS[19386:887418] critical:   at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x0004f] in <2f4074c3120b4d80802e10af84b67d41>:0
2017-06-24 12:20:37.599 RootTuner.iOS[19386:887418] critical: 
Native stacktrace:

2017-06-24 12:20:37.606 RootTuner.iOS[19386:887418] critical:   0   RootTuner.iOS                       0x000000010fdfc501 mono_handle_native_crash + 257
2017-06-24 12:20:37.607 RootTuner.iOS[19386:887418] critical:   1   RootTuner.iOS                       0x000000010fe095d0 mono_sigsegv_signal_handler + 288
2017-06-24 12:20:37.607 RootTuner.iOS[19386:887418] critical:   2   libsystem_platform.dylib            0x000000011bbfbbba _sigtramp + 26
2017-06-24 12:20:37.607 RootTuner.iOS[19386:887418] critical:   3   ???                                 0x0000000000000000 0x0 + 0
2017-06-24 12:20:37.607 RootTuner.iOS[19386:887418] critical:   4   QuartzCore                          0x000000011dc0a9ab _ZL18CAAnimation_setterP11CAAnimationj12_CAValueTypePKv + 169
2017-06-24 12:20:37.608 RootTuner.iOS[19386:887418] critical:   5   QuartzCore                          0x000000011dc03d5a -[CAAnimation setDelegate:] + 30
2017-06-24 12:20:37.608 RootTuner.iOS[19386:887418] critical:   6   UIKit                               0x0000000114057c39 -[UIViewAnimationState setAnimationAttributes:correctZeroDuration:skipDelegateAssignment:customCurve:] + 1094
2017-06-24 12:20:37.609 RootTuner.iOS[19386:887418] critical:   7   UIKit                               0x0000000114054475 -[UIViewAnimationState animationForLayer:forKey:forView:] + 1195
2017-06-24 12:20:37.609 RootTuner.iOS[19386:887418] critical:   8   UIKit                               0x0000000114055178 -[UIViewAnimationState actionForLayer:forKey:forView:] + 99
2017-06-24 12:20:37.609 RootTuner.iOS[19386:887418] critical:   9   UIKit                               0x000000011408052e +[UIView(Animation) _defaultUIViewActionForLayer:forKey:] + 111
2017-06-24 12:20:37.609 RootTuner.iOS[19386:887418] critical:   10  UIKit                               0x000000011485e8ec -[UIView(UIKitManual) actionForLayer:forKey:] + 119
2017-06-24 12:20:37.610 RootTuner.iOS[19386:887418] critical:   11  QuartzCore                          0x000000011dbda4bc -[CALayer actionForKey:] + 437
2017-06-24 12:20:37.610 RootTuner.iOS[19386:887418] critical:   12  QuartzCore                          0x000000011dbd5ade _ZL12actionForKeyP7CALayerPN2CA11TransactionEP8NSString + 76
2017-06-24 12:20:37.610 RootTuner.iOS[19386:887418] critical:   13  QuartzCore                          0x000000011dbd5a6c _ZN2CA5Layer12begin_changeEPNS_11TransactionEjRP11objc_object + 140
2017-06-24 12:20:37.611 RootTuner.iOS[19386:887418] critical:   14  QuartzCore                          0x000000011dbd5e04 _ZN2CA5Layer6setterEj12_CAValueTypePKv + 164
2017-06-24 12:20:37.611 RootTuner.iOS[19386:887418] critical:   15  QuartzCore                          0x000000011dbe1351 -[CALayer setOpacity:] + 43
2017-06-24 12:20:37.611 RootTuner.iOS[19386:887418] critical:   16  RootTuner.iOS                       0x000000010ffbe429 xamarin_dyn_objc_msgSend + 217
2017-06-24 12:20:37.611 RootTuner.iOS[19386:887418] critical:   17  ???                                 0x00000001351767f4 0x0 + 5185693684
2017-06-24 12:20:37.611 RootTuner.iOS[19386:887418] critical:   18  ???                                 0x00000001357292f4 0x0 + 5191668468
2017-06-24 12:20:37.611 RootTuner.iOS[19386:887418] critical:   19  ???                                 0x000000013572747c 0x0 + 5191660668
2017-06-24 12:20:37.612 RootTuner.iOS[19386:887418] critical:   20  RootTuner.iOS                       0x000000010fe0c585 mono_jit_runtime_invoke + 1301
2017-06-24 12:20:37.612 RootTuner.iOS[19386:887418] critical:   21  RootTuner.iOS                       0x000000010fec6b88 do_runtime_invoke + 88
2017-06-24 12:20:37.612 RootTuner.iOS[19386:887418] critical:   22  RootTuner.iOS                       0x000000010ff0d41a start_wrapper + 538
2017-06-24 12:20:37.612 RootTuner.iOS[19386:887418] critical:   23  RootTuner.iOS                       0x000000010ff91fed inner_start_thread + 189
2017-06-24 12:20:37.612 RootTuner.iOS[19386:887418] critical:   24  libsystem_pthread.dylib             0x000000011bc0daab _pthread_body + 180
2017-06-24 12:20:37.612 RootTuner.iOS[19386:887418] critical:   25  libsystem_pthread.dylib             0x000000011bc0d9f7 _pthread_body + 0
2017-06-24 12:20:37.612 RootTuner.iOS[19386:887418] critical:   26  libsystem_pthread.dylib             0x000000011bc0d1fd thread_start + 13
2017-06-24 12:20:37.613 RootTuner.iOS[19386:887418] critical: 
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================
private bool isAnimating = false;


        private bool isAnimating = false;
        private object myObject = new object();
        private void RunAnimation()
        {
            if (isAnimating) return;
            lock (myObject)
            {
                isAnimating = true;
                try
                {
                    //my animation
                }
                finally
                {
                    isAnimating = false;
                }
            }

        }
private bool isAnimating = false;
private object myObject = new object();
private void RunAnimation()
{
    if (isAnimating) return;
    lock (myObject)
    {
        isAnimating = true;
        try
        {
            //my animation
        }
        catch (Exception)
        {
            //set opacity = 1, visible = true....
        }
        finally
        {
            isAnimating = false;
        }
    }
}