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ý.
c# cakanie na unlock
-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
-
axxis
Addict
- Príspevky: 3690
- Registrovaný: 29 máj 2007, 21:53
- Bydlisko: Spálené mlyny
- Kontaktovať používateľa:
Re: c# cakanie na unlock
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?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ý.
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);
}-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: c# cakanie na unlock
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
Pri FileStream v C# je sa tieto locky urcuju vlastnotou FileShare, problem je ze ja potrebujem zistit