我正在编写一个目录应用程序,通过解析文件并提取信息,将每个文件的信息存储在对象实例中。除了从文件中提取的数据外,这些对象还具有其他元数据属性(作者、标签、注释等),后者会在单独的XML文件中存储。
从文件中提取数据是一项耗时的过程,因此我将其运行在单独的线程上。从文件中提取的属性只能来自文件,因此具有[ReadOnly]属性以防止用户编辑它们。另一方面,元数据属性仅由用户填充,因此不是只读的。我允许用户通过PropertyGrid查看/编辑这些对象。
因此,如果提取进程在一个线程上运行,并且正在填充对象的文件属性,让用户同时编辑元数据属性是否存在危险?我正在尝试决定是否使用模态界面,以防止用户在提取完成/取消之前做任何事情,或使用非模态界面,允许他们在提取运行时继续工作。
从文件中提取数据是一项耗时的过程,因此我将其运行在单独的线程上。从文件中提取的属性只能来自文件,因此具有[ReadOnly]属性以防止用户编辑它们。另一方面,元数据属性仅由用户填充,因此不是只读的。我允许用户通过PropertyGrid查看/编辑这些对象。
因此,如果提取进程在一个线程上运行,并且正在填充对象的文件属性,让用户同时编辑元数据属性是否存在危险?我正在尝试决定是否使用模态界面,以防止用户在提取完成/取消之前做任何事情,或使用非模态界面,允许他们在提取运行时继续工作。
double
不能保证被写入原子性,因此如果读取和写入同时发生,它可能显示错误。请参见以下链接中的注意事项:http://msdn.microsoft.com/en-us/library/system.double.aspx - user180326