0

当我尝试使用此代码时,我遇到了问题:

using (IsolatedStorageFile myISF = IsolatedStorageFile.GetUserStoreForApplication())         
{
    try
    {
        object _readLock = new object();
        lock (_readLock)
        {
            var myFS = myISF.CreateFile(reply_FileName.Replace(" ", "_"));

            StreamWriter mySW = new StreamWriter(myFS);
            mySW.WriteLine(jsonToSave);
            mySW.Close();
        }
    }
    catch (IsolatedStorageException ex) { MessageBox.Show(ex.Message); }                
}

我也已经尝试StreamWriter过使用,但问题没有解决。我有 2 页,在我使用的第一页上:

using (myFS = new IsolatedStorageFileStream(Forms_path + form_ID + ".json",
                  FileMode.Create, FileAccess.Write, myISF))
{
    using (StreamWriter mySW = new StreamWriter(myFS))
    {
        mySW.WriteLine(json);
        mySW.Close();
    }
    myFS.Dispose();
}
myFS.Close();

它运作良好。只是第二个代码有问题。我尝试了很多变体,但都不是很好。

编辑:当问题发生时,我在输出窗口中收到此消息:

mscorlib.ni.dll 中发生了“System.IO.IsolatedStorage.IsolatedStorageException”类型的第一次机会异常

EDIT2: 问题是我的文件名。我在文件名中添加了日期,“:”和“/”符号引起了麻烦。我觉得很可怜...

4

2 回答 2

0

每次调用该方法时都会创建锁定对象,因此它不会阻塞其他线程,因此会出现异常。_readLock 变量应该是类中的静态字段。

于 2013-07-08T09:38:43.040 回答
0

问题是我的文件名。我在文件名中添加了日期,“:”和“/”符号引起了麻烦。我觉得很可怜...

于 2013-07-08T18:19:40.333 回答