c# - Tasks and Binding works but every now and then I get an error out of the blue -


this learning application and

i'm trying make simple animation using dispachtimer , image control. have 3 images jump through every 100 ms. works great after time passes error.

i notice when decrease time interval garbage collector doesn't fire often. i'm new wpf , love wrap brain around whats happening. once again, animation work random amount of time.

**

must create dependencysource on same thread dependencyobject.

**

 public class viewmodel : inotifypropertychanged {     public event propertychangedeventhandler propertychanged;      public void raisepropertychanged(string propertyname)     {         if (propertychanged != null) subscribed event         {             propertychanged(this, new propertychangedeventargs(propertyname));         }     }      private imagesource _imagesourceheader_image;     public imagesource imagesourceheader_image      {             {             return _imagesourceheader_image;         }     set         {             _imagesourceheader_image = value;             raisepropertychanged("imagesourceheader_image");         }      }              public viewmodel()     {         startanimationasync();      }      public void startanimationasync()     {         dispatchertimer timer = new dispatchertimer();         timer.interval = new timespan(0, 0, 0, 0, 10);         timer.start();         timer.tick += timer_tick;     }      int = 1;     private async void timer_tick(object sender, eventargs e)     {         await task.run(() =>         {            if (i < 4 )             {                  imagesourceheader_image = new bitmapimage(new uri("pack://application:,,,/images/" + i.tostring() + ".jpg"));                  imagesourceheader_image.freeze();                                }             else             {                 = 1;                 imagesourceheader_image = new bitmapimage(new uri("pack://application:,,,/images/" + i.tostring() + ".jpg"));                  imagesourceheader_image.freeze();              }             = + 1;          });      }  }  

thank you

try this,

 private void timer_tick(object sender, eventargs e)     {         task.run(() =>         {            if (i < 4 )             {                  imagesourceheader_image = new bitmapimage(new uri("pack://application:,,,/images/" + i.tostring() + ".jpg"));                  imagesourceheader_image.freeze();                                }             else             {                 = 1;                 imagesourceheader_image = new bitmapimage(new uri("pack://application:,,,/images/" + i.tostring() + ".jpg"));                  imagesourceheader_image.freeze();              }             = + 1;          });      } 

Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -