VB.NET
9. 4. 2010 10:36
anonym
81.91.214.74
Dobrý den,
mám příchozí data, ta mohou přicházet ve více vláknech. zpracovat data však potřebuji udělat v jednom vlákně... to znamená více vláken mi bude plnit nějakou frontu a v jednom vlákně budu z fronty data odebírat a zpracovávat. Poradí někdo jak na to?
9. 4. 2010 12:05
81.0.195.91
Vytvoří se sdílená proměnná a při práci v každém vlákně se bude zamykat.
Shared m_Test as integer Public Sub Neco() SyncLock m_Test 'Tady si s proměnnou dělám co se mi zachce 'Ostatní vlákna čekají na odemčení EndSyncLock End Sub
10. 4. 2010 16:06
Tomáš Herceg
1847 3847
Akorát tu synchronizaci nedělejte na integeru, ale na Shared proměnné typu Object.
Zamykat musíte při přidávání položky do fronty i při jejím čtení.
10. 4. 2010 18:05
Ondřej Linhart
-553 3274
Zvážil bych použití System.Threading.ReaderWriterLockSlim místo SyncLock pokud dochází k častému čtení.
Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování. Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.
zapomenuté heslo
zaregistrujte se
Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?
Nahlásit Zrušit
zavřít