Я создаю прототип приложения (на данный момент консольное приложение UWP), которое управляется событиями. Приложение работает с вновь созданными файлами в системе, и я использую StorageFileQueryResult.ContentsChanged
, чтобы следить за ними, но не уверен, что мне следует делать, чтобы поддерживать процесс в рабочем состоянии во время ожидания событий. В настоящее время я использую бесконечный цикл while (который работает). Конечно, должен быть способ лучше?
Я использую c ++ / winrt, но применимо любое общее решение UWP.
Пример кода, вырезанный ниже:
int main()
{
winrt::init_apartment();
Windows::Storage::StorageFolder folder{ Windows::Storage::StorageFolder::GetFolderFromPathAsync(SOME_PATH).get() };
auto queryOptions = Windows::Storage::Search::QueryOptions(Windows::Storage::Search::CommonFileQuery::DefaultQuery, NULL);
auto query = folder.CreateFileQueryWithOptions(queryOptions);
query.ContentsChanged(Query_ContentsChanged);
auto files = query.GetFilesAsync().get();
for (auto const& f : files) {
std::wcout << f.Name().c_str() << std::endl;
}
while (1) {} // Keep process alive
}