I have created an app that initially creates a database and saves some data in it.
Now I want to delete this database and its files when the user clicks on the reset button but I am getting an error – ‘this is use in another process’. I want it to delete and recreate the database when click on the reset button. Any ideas?
I have created an app that initially creates a database and saves some data
Share
The most frequent cause of this is ude to the thread unsafe nature of interacting with isolated storage on Windows Phone. Regardless of how you’re implementing the database (be it in a file, or series of files), you’re interacting with the isolated storage on some level.
I highly encourage you to read, and make sure you understand this overview of isolated storage before going too far.
You’re remark:
makes me think you’re using a third party library to do your database stuff. This exception/error is being thrown when the library itsself is unable to access isolated storage. Without knowing exactly how you’re implementing the database, it’s hard to be exactly speak to your situation.
You never “recreate IsolatedStorage”, Isolated Storage is a term used to define the collection of disk space your application has access to. Much like a folder, this disk space has a root, and contains only files that you create.
In order to avoid thread exceptions when accessing Isolated Storage, make sure you use the using keyword in C# like so:
That should help with your problem of thread safety. To be more specifically helpful toward what you want to do, take a look at the following methods (you can add this to the above class):
Another thing I highly recommend is implementing the class that accesses IsolatedStorage using a “Multithreaded Singleton Pattern” as described here.
Hope that’s helpful. Code is provided “as-is”, I have not compiled it, but the general concepts are all there, so if there’s something amiss, read the MSDN docs to see where I goofed. But I assure you, most of this is copied from functional code of mine, so it should work properly with very little fanagaling.