2014-04-18 23 views
6

Tôi đang cố gắng bắt đầu với Tiện ích mở rộng phản ứng (Rx). Dưới đây là một ví dụ nhỏ tôi nấu chín lên:Tùy chọn Bộ lập lịch Rx không được dùng nữa

 var query = from number in Enumerable.Range(1, 20) select number; 
     var obs = query.ToObservable(Scheduler.ThreadPool); 

     obs.Subscribe(Console.WriteLine); 

     Console.ReadLine(); 

Khi tôi sử dụng Scheduler.ThreadPool, Scheduler.NewThread, vv, tôi nhận được cảnh báo này:

System.Reactive.Concurrency.Scheduler.ThreadPool 'là lỗi thời:' Đây thuộc tính không còn được hỗ trợ do tái cấu trúc bề mặt API và loại bỏ các phụ thuộc nền tảng cụ thể. Xem xét sử dụng Scheduler.Default để có được bộ lập lịch dựa trên pool thích hợp nhất của nền tảng. Để truy cập vào một trình lập lịch biểu dựa trên hồ bơi cụ thể, vui lòng thêm tham chiếu đến phiên bản System.Reactive.PlatformServices cho nền tảng đích của bạn và sử dụng bộ lập lịch thích hợp trong không gian tên System.Reactive.Concurrency. Xem http://go.microsoft.com/fwlink/?LinkID=260866 để biết thêm thông tin.

Nếu tôi làm theo hướng dẫn của cảnh báo, tôi vẫn nhận được cảnh báo. Tôi dự kiến ​​sẽ sử dụng gì cho lịch trình chính xác, nếu tôi muốn sử dụng các tùy chọn khác nhau được sử dụng để có sẵn thông qua lớp học Scheduler?

+0

Bạn có thể đăng mã nơi bạn đã làm theo hướng dẫn không? –

+0

Không nhiều để đăng ... Tôi đã có tham chiếu và lớp Scheduler thực sự là từ System.Reactive.Concurrency. Tôi không hiểu những gì khác lịch trình tôi cần phải sử dụng để thay thế. – Gigi

+0

Vì vậy, bạn đã không thay đổi mã? Scheduler.ThreadPool đã lỗi thời. Nếu bạn vẫn đang cố gắng sử dụng nó (bất kể bạn đã nhập thư viện nào) nó sẽ lỗi thời. Tôi đang tìm kiếm các phương pháp chính xác ... –

Trả lời

9

Hầu hết các Trình lập lịch nên đi kèm với một phiên bản mặc định. Bạn sẽ có thể sử dụng NewThreadScheduler.Default, ThreadPoolScheduler.Instance, v.v.

Các vấn đề liên quan