同步和異步調用

 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;
    });

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章