static void Main() { FooCallback callback = i => Console.WriteLine(i); Foo(0, 10, callback); GC.KeepAlive(callback); // to keep the GC from collecting the delegate }
private void foo(string status) { if (this.InvokeRequired == true) { FooCallback = new FooCallback(foo); this.Invoke (d, status); } else { //Do Things } }
public static bool RunTest() { FooCallback callback = FooStatic; var obj = (Delegates) new SuperDelegates(); obj.self = obj; callback += obj.Foo; callback = (FooCallback)Delegate.Remove(callback, new FooCallback(FooStatic)); callback = callback + FooStatic; callback = (FooCallback)Delegate.Combine(callback, new FooCallback(FooStatic)); callback += obj.ReturnSelf().self.FooVirtual; bool result = callback(true) && !callback.Invoke(false); callback = (FooCallback)Delegate.RemoveAll(callback, new FooCallback(FooStatic)); return(result); }
static extern void Foo(int start, int end, FooCallback callback);