Define delegate function : Delegate « Delegate « Visual C++ .NET

Home
Visual C++ .NET
1.2D
2.Class
3.Collections
4.Data Type
5.Database ADO.net
6.Delegate
7.Development
8.File Directory
9.Function
10.Generics
11.GUI Form
12.Language Basics
13.Network
14.Reflection
15.Security
16.Statement
17.Structure
18.Thread
19.XML
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Visual C++ .NET » Delegate » Delegate 
Define delegate function
 
#include "stdafx.h"
using namespace System;
using namespace System::Threading;

ref class MyClass{
public:
   property String^ Value;

   MyClass(String^ s) { Value = s; }
};

delegate void DoSearch(String^, MyClass^);

ref class Database{
   IAsyncResult^ result;
   MyClass^ m_r;
   public:
      Database(String^ s) { m_r = gcnew MyClass(s)}

   void Query(String^ queryString, MyClass^ r){
       r->Value = "New Value";
   }
   void InitiateQuery(String^ queryString){
      DoSearch^ qf = gcnew DoSearch(this, &Database::Query);
      Console::WriteLine(m_r->Value);
      result = qf->BeginInvoke(queryString, m_r,gcnew AsyncCallback(this, &Database::ProcessResult),qf);
   }

   bool IsQueryCompleted(){
      return result->IsCompleted;
   }

   void ProcessResult(IAsyncResult^ result)
   {
      DoSearch^ caller = (DoSearch^result->AsyncState;
      caller->EndInvoke(result);
      Console::WriteLine(m_r->Value);
   }

};
int main(){
   Database doc("Old Value");
   doc.InitiateQuery("SELECT * FROM Employee ");

   while (! doc.IsQueryCompleted() ){
       Thread::Sleep(100);
   }
}

   
  
Related examples in the same category
1.Adding and removing Delegates
2.delegate invocation list
3.delegate operators
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.