» »

[VB.NET] class

[VB.NET] class

korenje3 ::

Imam class z nekimi shranjenimi parametri.

Dim connect As New mtconnector(tcb As System.Threading.TimerCallback, row As DataRow, dt As Integer, int As Integer)

Sedaj če imam veliko teh predmetov, bi jih rad dodal v array, ampak v array lahko iščem samo po nekih vrednostih znotraj classa tako da s for ukazom.

recimo:
        For Each connect As mtconnector In usersconn
            If connect.UID = row(c_hash.DataPropertyName) Then

                Exit For
            End If
        Next


ker je to zamudno, me zanima kako bi lahko direktno dostopal do podatkov recimo:

if connect({row(c_hash.DataPropertyName)}) <> nothing then
end if
i9-12900k; 32GB DDR5-6000 CL36; Nvidia RTX 3080 ti;
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W

Looooooka ::

uporabi linq

korenje3 ::

a mogoče veš če te stvari uporabljajo interno iskanje v stilu kot sem ga napisal zgoraj? če je temu tako, potem me to v bistvu ne moti ker ne bi pridobil nič na hitrosti.
i9-12900k; 32GB DDR5-6000 CL36; Nvidia RTX 3080 ti;
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W

Looooooka ::

Yes they do :)
Ampak ce se ze gremo neko optimizacijo...potem je namesto foreach bolje uporabiti for.
Ker je hitrejse.
Ampak te optimizacije so tako majhne, da je skorajda VEDNO bolje uporabiti linq, ker je koda lepsa in je vzdrzevanje lazje.
Plus linq queryje se da prepisati s plinqom (paralelnost) in spet pridobis na hitrosti, ki je z foreach in for zankami ne mores izvesti.
Zadeva se pozna kasneje pri kompleksnih loopih in searchih, kjer ti ze compiler optimizira te linq queryje in so rezultati boljsi od stvari, ki jih skupaj spravi vecina programerjev.

Zgodovina sprememb…

  • spremenilo: Looooooka ()

korenje3 ::

ah to je potme že za kakšni večji projekt. glede na to da mi računalnik ne bo mogu sfolgat več kot 100 povezav, mislim da linqa ne rabim zaenkrat.
verjetno bi mi samo učenje tega pobralo še kakšen mesec tk da...

em ko si že glih tukaj...
A mogoče veš zakaj ljudje dajajo določene stvari read only pa write only v classih?
v čem je fora tega?
Mogoče kej pomaga pri recimo multithreadingu al to nima nobene vloge?
i9-12900k; 32GB DDR5-6000 CL36; Nvidia RTX 3080 ti;
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W

Zgodovina sprememb…

  • spremenil: korenje3 ()

Looooooka ::

Zadeva je v C#-ju definitivno lepsa :)
Ampak tudi v VB-ju jo zelo hitro vzljubis.

korenje3 ::

sem ene 5 let programiral v perlu in sm že sit tistih oklepajev. tk da se bom sticku vbja :p
i9-12900k; 32GB DDR5-6000 CL36; Nvidia RTX 3080 ti;
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W

Zgodovina sprememb…

  • spremenil: korenje3 ()

korenje3 ::

ok Imam še en problem.
tale dll datoteka v kateri je delegate mi omogoča callback samo z določenimi parametri... kar mi seveda ne zadošča.

znotraj classa Public Class mtconnector imam:
AddHandler m_mtclient.QuoteUpdated, addressof mtclient_quotehandler


   Sub mtclient_quotehandler(symbol As String, bid As Double, ask As Double)
        MsgBox("quote handler: " & symbol & " bid: " & bid & " ask: " & ask)
    End Sub


Problem je sedaj da ne vem na koga je vezano tole pa bi rad podal še en argument - recimo cel class mtconnector (Me) v katerem je bil podan handler.
Pa me zanima kako se da to narediti.
i9-12900k; 32GB DDR5-6000 CL36; Nvidia RTX 3080 ti;
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W

korenje3 ::

Zakaj mi ne dela invoke v threadu znotraj drugega classa.

Dobivam tale errror: Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

recimo v osnovnem form oknu:
Private Sub thread_sqlping() ' thread
Pinglabel.Invoke(del_pinglabel, New Object() {"Ping: --- ms"})
end sub

Delegate Sub pinglabeldelegate(ByVal sText As String)
Private del_pinglabel As New pinglabeldelegate(AddressOf pinglabelwrite)
Private Sub pinglabelwrite(ByVal sText As String)
Pinglabel.Text = sText
End Sub
Private sqlpingthread As System.Threading.Thread

Tole dela normalno.

medtem ko če dam tole v drugi class in thread, mi potem noče delat.
i9-12900k; 32GB DDR5-6000 CL36; Nvidia RTX 3080 ti;
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Visual Basic

Oddelek: Programiranje
313366 (2392) cekr
»

[VB] datagridview

Oddelek: Programiranje
351910 (1293) korenje3
»

[WPF] Vrednost Textbox kot "angle" v AxisAngleRotation3D

Oddelek: Programiranje
5767 (702) saule
»

[C#] problem z branjem COM porta

Oddelek: Programiranje
71836 (1658) iNN
»

[VB] Komunikacija s serijskimi napravami

Oddelek: Programiranje
412282 (1556) mNeRo

Več podobnih tem