Asynchronous WinRT CopySync文件。我怎么知道它什么时候结束?
我有一个Win8应用程序,需要使用Sqlite数据库;每次应用程序启动时,我都会检查文件是否存在,如果不存在,我会尝试复制它。 问题是,当我复制它时,应用程序试图在复制结束前打开它,但我得到一个错误: 我调用以下函数,然后尝试查询数据库:Asynchronous WinRT CopySync文件。我怎么知道它什么时候结束?,asynchronous,windows-runtime,Asynchronous,Windows Runtime,我有一个Win8应用程序,需要使用Sqlite数据库;每次应用程序启动时,我都会检查文件是否存在,如果不存在,我会尝试复制它。 问题是,当我复制它时,应用程序试图在复制结束前打开它,但我得到一个错误: 我调用以下函数,然后尝试查询数据库: public async static void CopyDatabase() { bool isExisting = false; try { StorageFile stora
public async static void CopyDatabase()
{
bool isExisting = false;
try
{
StorageFile storage = await ApplicationData.Current.LocalFolder.GetFileAsync("dbname.db");
isExisting = true;
}
catch (Exception ex)
{
isExisting = false;
}
if (!isExisting)
{
StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync("dbname.db");
await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder);
}
}
我怎么知道拷贝何时结束?我做错了什么?我认为问题不在于此方法的代码,而在于如何调用它 将方法的声明更改为:
public async static Task CopyDatabase()
并使用以下命令调用它:
await CopyDatabase();
这将保证在执行下一行代码(可能试图打开数据库)之前完成复制。我认为问题不在于此方法的代码,而在于如何调用它 将方法的声明更改为:
public async static Task CopyDatabase()
并使用以下命令调用它:
await CopyDatabase();
这将保证在执行下一行代码(可能试图打开数据库)之前完成复制