c# - How to convert 'Run on UI' Aspect from WPF to Windows Forms? -


i trying implement aspect following wpf example, can't figure out how make work winforms.

class runonuithreadattribute : imethodinterceptionaspect {     public override void oninvoke(methodinterceptionargs args)     {         dispatcherobject dispatchedobj = (dispatcherobject)args.instance;         if (dispatchedobj.checkaccess())         {             args.proceed();         }         else         {             dispatchedobj.dispatcher.invoke((action)(() => args.proceed()));         }     } } 

how equivalent of dispatcher working on windows forms?

if args.instance control, use invokerequired , invoke, instead of wpf counterparts:

class runonuithreadattribute : imethodinterceptionaspect {     public override void oninvoke(methodinterceptionargs args)     {         control c = (control)args.instance;         if (!c.invokerequired)         {             args.proceed();         }         else         {             c.invoke((action)(() => args.proceed()));         }     } } 

Comments