Bạn đang dùng trình duyệt đã lỗi thời. Trình duyệt có thể không hiển thị đúng trang web này hoặc các trang web khác. Bạn nên nâng cấp hoặc dùng một trình duyệt khác.
Thỉnh thoảng cũng có dùng semaphore slim bác ơi, ví dụ như gọi một cái external api (
ReverseGeocode api) mà server người ta có để rate limit. thì mình dùng semaphore slim để đảm bảo 1 giây chỉ gọi tối đa 2 request.
mà công nhận mấy cái này lâu lâu đụng tới cũng đau đầu thật :v
Thường nếu đã dùng stream thì mình đọc theo chunk/buffer, ví dụ dưới đây dùng FileStream, mỗi lần mình sẽ đọc 1024 bytes rồi xử lý trên cái 1024 bytes đó.
Còn nếu bác nối mấy cái kết quả lại với nhau thì nó cũng như ReadAllLines/ ReadAllText thôi bác. Ví bác vẫn phải lưu cái string data đó...
Theo mình hiểu là đúng vậy đó, giả sử string x = file.ReadAllFile("file.txt") thì chắc là nó lưu toàn bộ cái binary text ấy vào vùng nhớ mà x trỏ đến. Tuy nhiên nếu file đấy tầm 1GB chẳng hạn thì nó ăn hêt memory mất.
Ưu điểm dùng stream là để xử lý từng phần, ví dụ bác muốn đếm số lần xuất...
Nếu service phải đăng ký transient thì cái service đó phải là stateless. Nếu giờ đăng ký singleton thì cái service ấy có thể được dùng đồng thời bởi 2 thread, lúc này sẽ dễ có bug - ví dụ như nếu cái service class đó có 1 biến Counter, cả 2 cái thread đồng thời thay đổi cái giá trị của biến...