积极答复者
UWP在后台任务中,读写文件报错

问题
-
我的UWP应用,在后台任务(定时任务)读写文件时,遇到问题,
后台任务代码如下:
var file = await ApplicationData.Current.LocalFolder.GetFileAsync(fileName); await file.DeleteAsync();//调试跟踪到此处就无法继续跟踪了
需要说明的是:
1.fileName的值是“Record.xml”,
2.“Record.xml”是一个已存在的文件,在LocalFolder中,
3.我的后台任务是:定时写入一条记录到“Record.xml”文件中。我的做法是:先读取xml中的所有的记录,然后追加一条记录,再将文件删除,然后通过记录重新生成xml文件,
4.调试跟踪到第二行时,就跟不下去了,后续的断点也不中断,也不报任何错误,
求大神帮忙,
答案
全部回复
-
我想你肯定使用了正确的调试bakcgroud task的方式,但是在后台中读写文件,我的建议是使用异步操作锁,这样阻塞其他异步操作回来操作文件,这个是我在自己项目中后台操作文件的方式,是成功的。
AsyncLock
我的事例代码你可以看看 https://github.com/Jarrey/ChameHistoryOfToday/blob/master/src/ChameHOT.Service/ChameHOTBackgroundTaskService.cs 里面的Task_run
关于 AsyncLock, 你可以参考 https://github.com/StephenCleary/AsyncEx
或者从我的代码中获取:https://github.com/Jarrey/NoteOne_Framework/tree/master/src/NoteOne.Utility/Helpers
Bob Bao
Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。