# Dispatcher.Invoke

**URL:** <https://www.ruby-forum.com/t/dispatcher-invoke/179432>\
**Category:** IronRuby\
**Created:** [November 24, 2009, 7:45pm UTC](https://www.ruby-forum.com/t/dispatcher-invoke/179432 "2009-11-24T19:45:15Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Patrick\_Brown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e9a140/32.png) [@Patrick\_Brown](https://www.ruby-forum.com/u/Patrick_Brown)\
**Post date:** [November 24, 2009, 7:45pm UTC](https://www.ruby-forum.com/t/dispatcher-invoke/179432/1 "2009-11-24T19:45:15Z")

</div>

Hello

Is it possible to call the Control.Dispatcher.Invoke in IronRuby? I  
have  
been digging around and trying various approaches for quite a while and  
can’t quite seem to get it to work. The most simple example I below  
where I  
do not even access the parameter fails… any ideas would be greatly  
appreciated.

class MainWindow \< Window  
def updateStatus(status)  
puts ‘hi’  
end

def initialize  
self.Dispatcher.Invoke(updateStatus, [“jo”])  
end  
end

Thanks for your time and ideas,  
Patrick

---

<div class="post-metadata">

**Author:** ![Patrick\_Brown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e9a140/32.png) [@Patrick\_Brown](https://www.ruby-forum.com/u/Patrick_Brown)\
**Post date:** [November 24, 2009, 8:09pm UTC](https://www.ruby-forum.com/t/dispatcher-invoke/179432/2 "2009-11-24T20:09:50Z")

</div>

Yes it is possible but you need to wrap it in a Delegate like Action for  
it  
to work

A ruby method is not a CLR delegate at all.  
So you can do something like this

def update\_status(status)  
puts status  
end

def initialize  
meth = proc { |st| update\_status(st) }  
self.dispatcher.invoke meth, %w(jo)  
end

* * *

Met vriendelijke groeten - Best regards - Salutations  
Ivan Porto C.  
Blog: [http://flanders.co.nz](http://flanders.co.nz)  
Google Wave: removed\_email\_address@domain.invalid  
Twitter: [http://twitter.com/casualjim](http://twitter.com/casualjim)  
Author of IronRuby in Action ([http://manning.com/carrero](http://manning.com/carrero))

---

<div class="post-metadata">

**Author:** ![Patrick\_Brown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e9a140/32.png) [@Patrick\_Brown](https://www.ruby-forum.com/u/Patrick_Brown)\
**Post date:** [November 24, 2009, 8:12pm UTC](https://www.ruby-forum.com/t/dispatcher-invoke/179432/3 "2009-11-24T20:12:46Z")

</div>

sorry

def initialize  
meth = proc { |st| update\_status(st) }  
self.dispatcher.invoke(System::Action.new(&meth), %w(jo))  
end

## [http://github.com/casualjim/ironnails/blob/master/IronNails/vendor/iron\_nails/lib/view/xaml\_proxy.rb#L10](http://github.com/casualjim/ironnails/blob/master/IronNails/vendor/iron_nails/lib/view/xaml_proxy.rb#L10)

Met vriendelijke groeten - Best regards - Salutations  
Ivan Porto C.  
Blog: [http://flanders.co.nz](http://flanders.co.nz)  
Google Wave: removed\_email\_address@domain.invalid  
Twitter: [http://twitter.com/casualjim](http://twitter.com/casualjim)  
Author of IronRuby in Action ([http://manning.com/carrero](http://manning.com/carrero))

---

<div class="post-metadata">

**Author:** ![Patrick\_Brown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e9a140/32.png) [@Patrick\_Brown](https://www.ruby-forum.com/u/Patrick_Brown)\
**Post date:** [November 24, 2009, 9:19pm UTC](https://www.ruby-forum.com/t/dispatcher-invoke/179432/4 "2009-11-24T21:19:29Z")

</div>

Hi

Sorry, missed this response, it looks closer, I have to poke around  
for a  
bit, I am getting a missing method exception on Action.new.

Thanks,  
Patrick

---

<div class="post-metadata">

**Author:** ![Patrick\_Brown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e9a140/32.png) [@Patrick\_Brown](https://www.ruby-forum.com/u/Patrick_Brown)\
**Post date:** [November 24, 2009, 8:58pm UTC](https://www.ruby-forum.com/t/dispatcher-invoke/179432/5 "2009-11-24T20:58:25Z")

</div>

Hi

Thanks for your help, it still seems to be a bit off, I get this  
message  
after I cut and pasted your code in. Still looking into it but not  
finding  
much…

./MainWindow.rb:56: can’t convert Proc into System::Delegate (TypeError)  
Thanks,  
Patrick

---

<div class="post-metadata">

**Author:** ![Patrick\_Brown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e9a140/32.png) [@Patrick\_Brown](https://www.ruby-forum.com/u/Patrick_Brown)\
**Post date:** [November 24, 2009, 9:23pm UTC](https://www.ruby-forum.com/t/dispatcher-invoke/179432/6 "2009-11-24T21:23:00Z")

</div>

This works for me:

require ‘PresentationFramework’  
require ‘PresentationCore’

class MainWindow \< System::Windows::Window

def update\_status(status)  
puts status  
end

def initialize  
meth = proc { |status| update\_status status }  
dispatcher.invoke System::Action.of(String).new(&meth), “jo”  
end  
end

## System::Windows::Application.new.run MainWindow.new

Met vriendelijke groeten - Best regards - Salutations  
Ivan Porto C.  
Blog: [http://flanders.co.nz](http://flanders.co.nz)  
Google Wave: removed\_email\_address@domain.invalid  
Twitter: [http://twitter.com/casualjim](http://twitter.com/casualjim)  
Author of IronRuby in Action ([http://manning.com/carrero](http://manning.com/carrero))

---

<div class="post-metadata">

**Author:** ![Patrick\_Brown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e9a140/32.png) [@Patrick\_Brown](https://www.ruby-forum.com/u/Patrick_Brown)\
**Post date:** [November 24, 2009, 9:37pm UTC](https://www.ruby-forum.com/t/dispatcher-invoke/179432/7 "2009-11-24T21:37:03Z")

</div>

Ivan

Thank you so much, you have been a great help, what slowed me down is  
that your current sample which works is actually a bit different than  
the  
previous two.

Patrick
