Chcę uzyskać dobrą znajomość wielowątkowości w języku C#. Czytałem kilka artykułów takich jak Joseph Albahari's tutorials, które wyjaśniają pojęcia, ale jak wiesz, bez względu na to, ile czytasz, większość z nich staje się śmieciem, jeśli nie ćwiczysz. Potrzebuję czegoś, co ma pouczające i pragmatyczne przykłady kodu związane z rzeczywistymi praktykami życiowymi, a nie niektóre przykłady, które wypisują niektóre linijki. Masz jakieś sugestie?Sugestie ćwiczeń, aby pomóc w nauce wielowątkowości w języku C#
Odpowiedz
chłopaki Myślę, że znalazłem dobrą stronę: planet-source-code.com. Wyszukiwanie w Net kodów z „GW” słowo kluczowe wydaje się wrócić kilka dobrych przykładów, jak
- wielu synchronizacji folderów gwintowany
- wielo gwintowane serwer TCP
- plik tła downloader
- asynchronicznym. gniazdo
- Udostępnianie plików P2P
- prosty kontroler poczty konsol POP3 i wiele innych!
yay!
Jeśli robisz jakiekolwiek projekty typu winform lub wpf, szybko natkniesz się na problemy, gdy spróbujesz zrobić "stuff" w wątku UI.
Załóżmy, że musisz przeczytać i przeanalizować zawartość dużego (2GB) pliku XML. Jeśli praca została wykonana w wątku UI, interfejs zawiesił się do czasu ukończenia pracy. I odwrotnie, jeśli wykonasz pracę poprawnie w wątku roboczym, możesz zachować responsywność interfejsu poprzez wiadomości i dać znać użytkownikowi, co aktualnie robisz (pasek stanu (ugh) lub wyświetlać w tekście, co masz na myśli "Czytanie XML", itp.)
Dobrym prostym przykładem byłoby wykonanie przykładowej aplikacji i zwolnienie go z obiektu BackgroundWorker w celu obsługi dowolnej pracy wykonywanej w tle (może to być nawet Thread.Sleep (10000)) lub coś banalnego.)
Powiedziałbym, że jest to jeden z wielu dobrych punktów wyjścia na ten temat.
http://msdn.microsoft.com/en-us/library/cc221403%28VS.95%29.aspx
Jestem głównie w obszarze komunikacji w tle, z gniazdkami i usługami sieciowymi. ale dzięki za sugestię zacznę od tego :) – aslisabanci
Ten site ma kilka przykładowych aplikacji, które myślę, że byłoby aplikacje przyzwoite praktyki do wdrożenia. Wygląda jednak na to, że linki do kodu źródłowego są zepsute. Uważam jednak, że przedstawione wnioski stanowią bardzo praktyczne przykłady. Kilka obejmują:
- Desktop Search
- Download Manager Client
- FTP
- Kompresja
- Multiple RSS
Tak, tego właśnie szukałem. Szkoda, że źródeł już nie ma :( – aslisabanci
Jakiś losowej liczby pożerające to dobry test dla tego. Nauczyłem się gwintowania, pisząc wyszukiwarkę liczb pierwszych, a następnie łamiąc moje numery "wyszukiwania" w bloki i używając wątku do przepracowania każdego z nich.
To pozwól mi ustawić niektóre zmienne dotyczące rozmiaru bloku, liczby wątków do użycia, czasu oczekiwania między wyzwalaniem wątków itp., Aby sprawdzić, jak każdy z nich wpływa na wydajność.
- 1. Obsługa błędów wielowątkowości w języku Java
- 2. Confused o wielowątkowości w pętli dla C#
- 3. Loop fusion w C++ (jak pomóc kompilatorowi?)
- 4. Używanie easymock w wielowątkowości
- 5. Brak równowagi w nauce scikit
- 6. Sugestie/przykładowy kod dla fileSystemWatcher w Javie
- 7. Użyj programu rspec, aby przetestować program w języku C/C++.
- 8. Biblioteki BOOST w trybie wielowątkowości
- 9. W języku C#, być może jest to błąd dla Image.SaveAdd, kto może mi pomóc go rozwiązać?
- 10. Zapisywanie pliku dziennika w języku c/C++
- 11. Zrozumienie wielowątkowości
- 12. Co jest podstawowym przykładem wielowątkowości "low-level" w C++?
- 13. wielowątkowości httpclient
- 14. jest polecenie, aby zastosować sugestie hlint w emacs?
- 15. DateTime W języku C#
- 16. GradientBoostingClassifier z BaseEstimator w nauce scikit?
- 17. SetWindowsHookEx w języku C#
- 18. Czy są jakieś tutoriale, aby pomóc biegły programista C++ uczyć się c?
- 19. `PROCESSENTRY32W` w języku C#?
- 20. Safehandle w języku C#
- 21. Jak napisać fragment kodu, aby wygenerować metodę w języku C#?
- 22. Jak zadeklarować klasę w języku C#, aby móc łańcuch metod?
- 23. Czy możesz użyć "gdzie", aby wymagać atrybutu w języku C#?
- 24. Pojedyncze kliknięcie, aby otworzyć menu ikony zasobnika w języku C#
- 25. Sugestie dotyczące get_text() w BeautifulSoup
- 26. Dobra praktyka do wielowątkowości
- 27. Utwórz sesję w języku C#
- 28. Google Api OAuth w języku C#, .NET
- 29. Spraw, aby program w języku Python czekał:
- 30. O ćwiczenie zawartym w tomie TAOCP czyjegoś „Uwagi dotyczące Ćwiczeń”
Myślę, że powinieneś naprawić link: usunąć linie po ".com" – AlexSavAlexandrov
OK, zrobiłeś to. – aslisabanci