Citeam urmatorul post http://qedcode.com/content/awaitable-critical-section , in care se explica o modalitate de a face lock in cazul in care in block-ul de lock contine un apel la o metoda async. Pe scurt, pentru a evita ca doua sau mai multe thread-uri sa scrie simultan in acelasi fisier, se incerca sa se faca lock. Dar .NET 4.5 nu ne lasa sa avem urmatorul cod (si foarte bine face): lock( this ) { var f = await storageFile.OpenAsync(); ... await file.WriteAsync("some content"); } Eroarea pe care o primim arata in felul urmator: The 'await' operator cannot be used in the body of a lock statement. In link-ul pe care l-am dat mai sus, s-a incercat implementarea unei solutii custom care face lock la o anumita portiune de cod. O alta varianta ar putea sa fie sa incerca sa folosim Task.Run. Cea ce am obtine ar fi ceva asemanator cu urmatorul cod lock( this ) { var f = await storageFile.OpenAsync(); ... Task.Run(async () => {await f.Writ...
DREAMER, CRAFTER, TECHNOLOGY ENTHUSIAST, SPEAKER, TRAINER, AZURE MVP, SOLVING HARD BUSINESS PROBLEMS WITH CUTTING-EDGE TECHNOLOGY