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
     }
 }
示例#3
0
        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);