예제 #1
0
        public void Dispose()
        {
            if (image == null)
            {
                return;
            }

            image.GetType().GetField(
                "count",
                System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(image, int.MaxValue / 2);
            image.GetType().GetProperty("DelayCount").SetValue(image, delay);
        }
예제 #2
0
        public NoDelay(IAsyncBitmap im)
        {
            if (im.GetType().Name == "WrappingBitmap")
            {
                return;
            }

            while (im.GetType().Name != "DelayedBitmap")
            {
                im = (IAsyncBitmap)im
                     .GetType()
                     .BaseType
                     .GetFields(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)
                     .First()
                     .GetValue(im);
            }
            im.GetType().GetField(
                "count",
                System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance
                ).SetValue(im, int.MinValue);

            image = im;
            delay = im.GetType().GetProperty("DelayCount").GetValue(im);
            im.GetType().GetProperty("DelayCount").SetValue(im, int.MaxValue / 2);
        }