同步和异步调用

 1Metro读写文件

Metro不是在随便位置都可以读写文件的,只开放了相应的读写位置。我只介绍在文档库读写文件的方法。

最重要的是必须在package manifest中事先声明。每个项目管理器中都有一个manifest文件,双击打开,点击功能按钮,在功能列表中列出了你的程序需要提供的功能,也隐含着你需要被提供访问权限的位置,勾选你需要的权限很重要,否则在访问你不具备权限的位置时将引发异常。如果是想要在文档库中进行文件操作,还要事先声明添加一个文件关联的声明,在该声明中添加你需要访问的文件类型

2

凡是名字中带有Asyn字样的方法都是可以进行异步操作方法,在C++中使用这种方法需要Concurrency空间中的task类。task类是一个模板类,提供两个重要的方法异步的then()和同步的get()。将异步方法的返回值强制转换为一个以该返回值类型为模板的task类实例,然后调用then或者get方法,才会真正执行该方法。具体的使用方法见MSDN。

    task<StorageFile^>(KnownFolders::DocumentsLibrary->CreateFileAsync("sample.txt", CreationCollisionOption::ReplaceExisting)).then([this](StorageFile^ file)
    {
        _sampleFile = file;
    });

你可能感兴趣的:(同步和异步调用)