Tôi đang làm việc với thiết bị đọc RF có API C#. Dựa trên API của nó, bạn sẽ cần phải gọi hàm đọc của nó theo cách thủ công để đọc/đánh dấu thẻ.Ngôn ngữ C# tương đương với ScheduledExecutorService
Vì vậy, giải pháp thay thế của tôi là sử dụng Bộ hẹn giờ để thực thi đọc từng giây 'n'.
Vấn đề của tôi là Timer liên tục thực hiện, bất kể Thread.sleep() được gọi bên trong hành động của nó.
Timer timer = new Timer(TimerCallback, null, 500, 1000); // From main() method
// The action that Timer executes
private void TimerCallback(Object o)
{
scan(); // Action for reading/badging card
scand.WaitOne(); // AutoResetEvent(true)
GC.Collect(); // Force garbage collection
}
Thread.sleep() gọi bên trong quá trình quét().
Trong Java, tôi sử dụng đồng bộ() để đợi chuỗi khác gọi invoke(). Tôi đã tìm kiếm cả ngày và tôi không thể thấy một giải pháp thay thế sẽ tương đương với ScheduledExecutorService và được đồng bộ hóa().
Tôi hy vọng có một giải pháp với nguyên nhân này tôi cần nó càng sớm càng tốt.
Cảm ơn!
bạn đã có một cái nhìn tại các lớp công tác ? http://stackoverflow.com/questions/13211334/how-do-i-wait-until-task-is-finished-in-c – fuchs777
Tôi thấy lớp Task khi tôi đang tìm kiếm nhưng mã @Erno de Weerd đã được giải quyết vấn đề của tôi. Nhưng dù sao cũng được. –