glib-sharp [00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 71 EB 6C 55 75 52 9C BF 72 44 F7 A6 EA 05 62 84 F9 EA E0 3B CF F2 CC 13 2C 9C 49 0A B3 09 EA B0 B5 6B CE 44 9D F5 03 D9 C0 A8 1E 52 05 85 CD BE 70 E2 FB 90 43 4B AC 04 FA 62 22 A8 00 98 B7 A1 A7 B3 AF 99 1A 41 23 24 BB 43 25 F6 B8 65 BB 64 EB F6 D1 C2 06 D5 73 2D DF BC 70 A7 38 9E E5 3E 0C 24 6E 32 79 74 1A D0 05 03 E4 98 42 E1 9B F3 7B 19 8B 40 21 26 CB 36 89 C2 EA 64 96 A4 7C B4] 2.6.0.0 Gtk# is thread aware, but not thread safe; See the Gtk# Thread Programming for details. Identifies a delegate to run before the default signal handler. Use this attribute to attach an event handler to an object and cause it to be invoked before the default signal handler of the object. While this mechanism can be used to pierce the object's encapsulation and change the behavior of the object without subclassing it, the cleaner approach would be to subclass the object and override the virtual method for the default signal handler. In the following example, the ButtonClicked method will be invoked before the virtual method is executed. public class Example { public static int Main (string[] args) { Gtk.Button btn = new Gtk.Button ("Click me"); btn.Clicked = new EventHandler (ButtonClicked); } [GLib.ConnectBefore] private void ButtonClicked (object o, EventArgs args) { Console.WriteLine ("Got Clicked"); } } System.Attribute Constructor Public Constructor.