HEJ! Du får deklarera klass2 i din mainmetod - där du deklarerar klass1 och där huvud- Jag skall knåpa ihop ett exempel... Kom nu på att det måsta vara SHARED!!!Klass frågor -Ingen som har några förslag?
Om man har 2st klasser.
Man skapar 10st instanser av klass 1 och 1st av klass nummer2.
Om man nu vill anropa klass 2 från alla 10 klass 1.
Vart/hur skall man deklarera klass 2?
Om man sedan bara vill ett en utav klass 1 får tillträde till klass 2 i taget.
Hur spärrar man det?
(De 10 klass 1 kör var sin thread som skall kunna nyttja klass2, dock ej samtidigt)
Hoppas någon fattar vad jag menar...
/AlexanderSv: Klass frågor
>Vart/hur skall man deklarera klass 2?
Svårt att säga utan att veta närmare vad klasserna gör. Du kan ju kanske ha en referens till dit klass2 objekt i en statisk (Shared) variabel i klass1, eller skicka in klass2 objektet till konstruktorn i klass1.
>Om man sedan bara vill ett en utav klass 1 får tillträde till klass 2 i taget.
>Hur spärrar man det?
Med SyncLock eller nån av synkroniseringsprimitiverna i System.Threading namnrymden.
MSSv: Klass frågor
programmet körs. Du kan inte deklarera den i någon enskild metod.
Hur du löser det med multitasking vet jag tyvärr inte.
/EmmaSv: Klass frågor
Klar...men får ej K2 anropet att funka...
<code>
Option Explicit On
Imports System.Threading
Public Class Form1
Inherits System.Windows.Forms.Form
Public K2 As KLASS2
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
Me.Text = "Form1"
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim K1_1 As New KLASS1()
Dim K1_2 As New KLASS1()
'OSV...
K1_1.START()
K1_2.START()
End Sub
End Class
Public Class KLASS1
Dim MeThread As Thread
Public Sub START()
MeThread = New Thread(AddressOf _RUN)
MeThread.Start()
End Sub
Private Sub _RUN()
'Väntar på att något skall hända.
Thread.Sleep(5000)
'VÄNTA PÅ ATT INGEN ANNAN KÖR K2
'K2.SHOW() 'GÅR EJ???
End Sub
End Class
Public Class KLASS2
Public Sub SHOW(ByVal Text As String)
MsgBox(Text)
End Sub
End Class
</code>Sv: Klass frågor
<code>
Public Class KLASS2
Public Shared Sub SHOW(ByVal Text As String)
MsgBox(Text)
End Sub
</code>