» »

VB.NET...al pa C#

VB.NET...al pa C#

Looooooka ::

trenutno koncujem eno server aplikacijo in sem zarad sinhronizacije pisanja v bazo prisiljen da tega pac ne pocne vec threadov naenkrat.
Vse ok in sploh ni problemov...ampak ker je branje dataseta in datatabel thread-safe me zanima ce se komu sanja kako bi naredil naslednjo stvar:
-tisti threadi,ki laufajo procedure,ki vsebujejo pisanje po bazi se pac tako kot ze zdej dajem s custom semaphor classom laufajo ena za drugo (1 thread na enkrat...).
Zdej pa ker mam se povezave s klientov(remoting) bi rad tem klientom...ki pac laufajo cist druge procedure omogocil da za razliko oz zgoraj omenjenih tecejo tudi v vec threadih na enkrat ker ni nobenga pisanja v bazo.
Se prav a obstaja kksna moznost da mas nekak 2 semaforja s tem da enemu dodelis ene threade(in se tm pac samo 1 na enkrat izvaja) drugemu pa dodelis druge threade...kjer se pa recimo smejo izvajat tud 3 naenkrat.
In ja masina na keri bo zadeva laufala bo mela vec procesorjev tko da ce bi se dal to resit bi se poznalo =)
thank you!

snow ::

Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

frudi ::

če dovoliš samo en thread naenkrat, lahko uporabiš monitor class. temu lahko podaš različen objekt za zaklenit, glede na to, kaj se zapisuje v bazo. za prve threade (ki pišejo v bazo 1 naenkrat) uporabiš vedno isto instanco nekega globalnega objekta, za druge pa ob vsakem zapisovanju v bazo ustvariš nov lock object. nekaj v tem stilu:

object m_lockObject = new Object();

public void ProceduraKiPiseVBazo(<parametri>)
{
  object lockObject;
  ...
  if (<pogoj, po katerem identificiraš za katero vrsto threada gre>)
    lockObject = m_lockObject;  //po en thread naenkrat...
  else
    lockObject = new Object();  //navali narod...
  ...
  Monitor.Enter(lockObject);
  ...
  <zapisovanje v bazo>
  ...
  Monitor.Exit(lockObject);
  ...
}
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)

Looooooka ::

ja se mi je zdel da sm ime mal zaj...ampak seveda po tem ko sm kliknu poslji spremenit se pa ne da.
bom pazu naslednic =).

frudi hvala...bom pogledu ce lahko tole ponucam ne da bo treba cel program prepisat.
:D

Looooooka ::

probu...mogu se mal threade z mutex classom v red spravt in kombinacija enga in druzga dela super.Nobenih exceptionov vec ko updejtam dataset pa se class k ga mam za updejtanje je zdej thread safe.
me so happy =)
thank you again!

frudi ::

ql, lepo da dela :)
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)


Vredno ogleda ...

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

[UWP] [C#]

Oddelek: Programiranje
424205 (2235) BivšiUser2
»

[Android] Nov tip shranjevanja slike

Oddelek: Programiranje
142193 (1317) urosz
»

[VB] datagridview

Oddelek: Programiranje
351948 (1331) korenje3
»

[QT/C++] Spreminjanje objektov na glavnem oknu iz QThread-a

Oddelek: Programiranje
7827 (698) c0dehunter
»

POMOČ: C# Spremenitev spremenljivke medtem ko teče ukaz while

Oddelek: Programiranje
91648 (1405) Ericssony

Več podobnih tem