Forum » Programiranje » [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:
ker je to zamudno, me zanima kako bi lahko direktno dostopal do podatkov recimo:
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
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W
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
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.
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?
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
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W
Zgodovina sprememb…
- spremenil: korenje3 ()
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
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:
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.
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
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.
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
Gigabyte Aorus z690 master; Be Quiet Dark Power 12 1000W
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Visual BasicOddelek: Programiranje | 3461 (2487) | cekr |
» | [VB] datagridviewOddelek: Programiranje | 1950 (1333) | korenje3 |
» | [WPF] Vrednost Textbox kot "angle" v AxisAngleRotation3DOddelek: Programiranje | 791 (726) | saule |
» | [C#] problem z branjem COM portaOddelek: Programiranje | 1873 (1695) | iNN |
» | [VB] Komunikacija s serijskimi napravamiOddelek: Programiranje | 2314 (1588) | mNeRo |