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); }
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); }