2012-12-30 21 views
6

Tôi đang viết một ứng dụng Windows 8 mà chủ yếu sẽ chạy trong nền. Ứng dụng này sẽ dành riêng cho máy tính (ví dụ: không có máy tính bảng hoặc điện thoại, trong trường hợp có sự khác biệt). Nó cần để có thể xem một thư mục được chỉ định trong khi nó đang chạy trong nền và được thông báo khi có một sự thay đổi trong thư mục đó. Bởi vì nó là một ứng dụng Windows cửa hàng tôi không thể sử dụng một FileSystemWatcher, mà sẽ được hoàn hảo trong tình hình của tôi. Ngoài ra, tôi không thể sử dụng bộ hẹn giờ để xem thư mục vì những thay đổi này sẽ xảy ra sau mỗi 10-15 giây và bộ hẹn giờ không hỗ trợ thời gian ngắn hơn 15 phút. Tôi có những lựa chọn nào khác?Làm cách nào để theo dõi một thư mục có thay đổi trong nền của Ứng dụng Windows?

+0

Bạn có thể chạy chương trình nền để kiểm tra và trả lại bất kỳ khi nào có thay đổi. Điều đó sẽ bị giới hạn trong khoảng 15 phút. – FrostyFire

+0

@JABFreeware Vì vậy, tôi sẽ phải viết một chương trình khác có thể xem thư mục, gói nó vào tệp thực thi, thêm tệp thực thi vào ứng dụng của tôi, làm cho ứng dụng của tôi chạy ứng dụng, sau đó yêu cầu ứng dụng của tôi lắng nghe thư từ tệp thực thi? – Garrett

+2

Một giải pháp là không đưa ứng dụng của bạn vào một cửa hàng có mục đích ngăn cản bạn làm những gì bạn muốn làm. –

Trả lời

1

Vì bạn không thể sử dụng bộ hẹn giờ kích hoạt sau mỗi 15 giây, điều duy nhất tôi có thể đề xuất là chạy vòng lặp đơn giản, trước khi vòng lặp kiểm tra thời gian hệ thống từ đồng hồ hệ thống. vòng lặp nó kiểm tra sự khác biệt giữa đồng hồ hệ thống hiện tại và giá trị được lưu trữ ban đầu. Khi bạn nhận được đến 15 giây vòng lặp dừng lại và bắt đầu mã kiểm tra thư mục. Nếu mã trong vòng lặp là đơn giản và sử dụng một cuộc gọi Sleep nó không nên mất hầu như bất kỳ tài nguyên hệ thống.

Tôi hy vọng điều này sẽ giúp ích cho bạn!

+0

Bận chờ đợi? Ít nhất cũng đề nghị anh ta đặt một số loại lệnh 'Sleep' trong vòng lặp, nếu được cho phép ... nếu không nó sẽ giết CPU, và lấy pin xuống với nó! Vòng lặp rỗng không ** không ** sử dụng "hầu như bất kỳ tài nguyên hệ thống nào". Nó giữ bộ vi xử lý (hoặc ít nhất một lõi) chạy với công suất 100% liên tục. –

+0

@MattiVirkkunen Tôi tin rằng anh ta giả định rằng tôi sẽ đặt tương đương 'Sleep'. Tôi biết rằng nó sẽ giết CPU nếu không. – Garrett

+0

@MattiVirkkunen vâng tôi đã giả định điều đó. Tôi sẽ chỉnh sửa câu trả lời của tôi chỉ để làm rõ – FrostyFire

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