تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Hard Coding: AutoResetEvent & ManualResetEvent
#4
الأخ أبوليلي

في الكلاس أدناه ستجد نفس الفكرة بتطبيق مختلف
وهنا تم الاستغناء عن كلاسات مايكروسوفت


PHP كود :
Public Class Provider

    Private lock 
As Object
    Private source 
As Byte
    Private destination 
As Byte
    Private callback 
As ProviderCallBack
    Private IsProvided 
As Integer

    Public Sub 
New(callback As ProviderCallBacksource As Byte)
 
       Me.callback callback
        Me
.source source
        Me
.IsProvided 0
        Me
.lock = New Object
        Me
.destination Nothing
    End Sub

    Public Sub Provide
()
 
       SyncLock Me.lock
            Me
.callback(Me.destinationMe.source)
 
           Me.IsProvided Me.IsProvided 1
        End SyncLock
    End Sub

    Public Sub OnProvided
(ByRef result As Byte)
 
       SyncLock Me.lock
            If Me
.IsProvided 0 Then
                result 
Me.destination
            End 
If
 
           Me.IsProvided 0
        End SyncLock
    End Sub

End 
Class

Public 
Delegate Sub ProviderCallBack(ByRef destination As Bytesource As Byte

الإستخدام

الطريقة الأولي:


PHP كود :
Public Class Form1
Private Sub Form1_Load(sender As ObjectAs EventArgsHandles MyBase.Load
        Dim callBack 
As ProviderCallBack AddressOf DoProvide
        Dim provider 
As Provider = New Provider(callBack100)
 
       provider.Provide()
 
       Dim result As Integer Nothing
        provider
.OnProvided(result)
 
       Me.Text result
    End Sub

    Private Sub DoProvide
(ByRef x As ByteAs Byte)
 
       x y
    End Sub

End 
Class 

الطريقة الثانية:

PHP كود :
Public Class Form1

    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load

        Dim callBack 
As ProviderCallBack Sub(ByRef x As ByteAs Byte)
 
                                              x y
                                           End Sub


        Dim provider 
As Provider = New Provider(callBack100)
 
       provider.Provide()
 
       Dim result As Integer Nothing
        provider
.OnProvided(result)
 
       Me.Text result
    End Sub

 End 
Class 

يجب ملاحظة إن الكلاس ممكن تحويله الي
Provider(OF T
Retired
الرد }}}
تم الشكر بواسطة: ابو ليلى , Sajad , Sajad


الردود في هذا الموضوع
RE: Hard Coding: AutoResetEvent & ManualResetEvent - بواسطة silverlight - 28-07-17, 11:43 AM

التنقل السريع :


يقوم بقرائة الموضوع: