c# cakanie na unlock

Programovacie jazyky, rady, poradňa...
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

c# cakanie na unlock

Príspevok od používateľa harrison314 »

zdravim, v C# potrebujem spraviť metódu, ktorá počká na odomknutie súboru ( používa ho aj iný proces ), viete mi niekto niečo poradiť?
na nete som našiel len niečo v štýle, ak ti to hodi výnimku tak packaj a skus znovu, lenže to je v mojom prípade nepoužitié.
Alebo stači cheknut či je súbor zamknutý.
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: c# cakanie na unlock

Príspevok od používateľa axxis »

harrison314 napísal:zdravim, v C# potrebujem spraviť metódu, ktorá počká na odomknutie súboru ( používa ho aj iný proces ), viete mi niekto niečo poradiť?
na nete som našiel len niečo v štýle, ak ti to hodi výnimku tak packaj a skus znovu, lenže to je v mojom prípade nepoužitié.
Alebo stači cheknut či je súbor zamknutý.
A nestaci spravit lock statement na ten subor? Ked jeden thread stupi do kritickej sekcie a nieco tam robi a iny sa dostane na lock(tvojSubor) tak sa sleepne a spusti sa v momente ked predchadzajuci skonci aj bez explicitneho notifikovania po Monitor.Exit(tvojSubor)? ci sa mylim?

Lock je na koniec iba strucny prepis Monitor.Enter kodu (do, ktoreho sa prekompiluje) a tam sa pracuje s vynimkami

Kód: Vybrať všetko

lock(myGuard)
 {
 // do some stuff that is being synchronized
 }

Kód: Vybrať všetko

Monitor.Enter(myGuard);
 try
 {
 // do some stuff that is being synchronized
 }
 finally
 {
 Monitor.Exit(myGuard);
 }
tieto dva kody su po kompilacii identicke
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: c# cakanie na unlock

Príspevok od používateľa harrison314 »

asi som sa zle vyjadril, ale nejde o lock z threadingu ale lock na subor, napriklad iny proces zapisuje do suboru, tak ho zamkne aby ine procesy nemohli citat subor v nekonzistentom stave ( a este horsie zapisovat )

Pri FileStream v C# je sa tieto locky urcuju vlastnotou FileShare, problem je ze ja potrebujem zistit
Napísať odpoveď