Do not use on any
shared computer
August 30, 2008 05:19am pdt
 
[x]
Attachment Details

Is it possible to access delegate methods across classes in VB.NET

I would like to know how to make I the following conditions work.  I'm trying to call a delegate function from across different instances of classes.  Its not working for me and would love some help.  The whole invoke area does not seem to be working as for some reason FrmClass is not calling its instance name.  

1. I have two classes FrmClass and OtherClass.

2. FrmClass is a standard windows application form class that spawns X number of instances of OtherClass.  Each instance of OtherClass creates and starts a thread.

3. OtherClass declares the delegate:
    Delegate Function LockDocIdHandler(ByVal ThreadIndex As Integer, ByVal DocId As Integer) As Boolean

4. OtherClass also contains the function:
    Public Function LockDocId(ByVal DocId As Integer) As Boolean
        'A copy of this method runs on each Thread....
        Return CType(FrmClass.Invoke(New LockDocIdHandler(AddressOf FrmClass.LockDocIdMethod), New Object() {CInt(System.Threading.Thread.CurrentThread.Name), DocId}), Boolean)
    End Function

5.  The FrmClass contains the delegate method:
    Public Function LockDocIdMethod(ByVal ThreadIndex As Integer, ByVal DocId As Integer) As Boolean
        'Thie method runs on the Form's Thread....
        For intX As Integer = 0 To (_LockArray.Length - 1)
            If _LockArray(intX) = DocId Then
                Return False
                Exit Function   'This Statement is pointless, but it is included to ensure anyone reading this code knows this Function is going to be exited....
            End If
        Next intX
        _LockArray(ThreadIndex) = DocId
        Return True
    End Function

6. I call the function inside OtherClass:
If LockDocID(integerX)  Then
End If

Any help is appreciated, thanks
Start your free trial to view this solution
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

Question Stats
Zone: Programming
Question Asked By: RichardRiga
Solution Provided By: gnoon
Participating Experts: 1
Solution Grade: A
Views: 0
Translate:
Loading Advertisement...
 
[+][-]Expert Comment by gnoon

Rank: Master

Expert Comment by gnoon:

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
[+][-]Author Comment by RichardRiga
Author Comment by RichardRiga:

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
[+][-]Accepted Solution by gnoon

Rank: Master

Accepted Solution by gnoon:

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
20080723-EE-VQP-34 / EE_QW_2_20070628