回答
你应该把所有的工作负载异步,这样你不要滥用/过载主线程,并保持你的应用程序/ UI响应。你可以这样管理它:
protected void buttonSaveClick(sender object, EventArgs e) //Assuming you call your save from a button
{
string filePath = FilePath(Constants.Data, filename));
StringBuilder sb = new StringBuilder();
foreach(var sublist in _mylist)
{
//This will loop only through object's public properties
foreach(var prop in sublist.GetType().GetProperties())
if(prop.CanRead)
sb.AppendLine(prop.GetValue(sublist, null));
}
buttonSaveClick.Enabled = false; //Disable the UI so the user can't cause an error clicking again
try
{
await WriteTextAsync(filePath, _textFileHeader.DataColumnHeader(columnnames));
await WriteTextAsync(filePath, sb.ToString());
}
catch(Exception ex)
{
buttonSave.Enabled = true; //Enable UI again on error
//Log and/or show error to user
}
buttonSave.Enabled = true; //Enable UI again on success
}
private async Task WriteTextAsync(string filePath, string text)
{
byte[] encodedText = Encoding.Unicode.GetBytes(text);
using (FileStream sourceStream = new FileStream(filePath,
FileMode.Append, FileAccess.Write, FileShare.None,
bufferSize: 4096, useAsync: true))
{
await sourceStream.WriteAsync(encodedText, 0, encodedText.Length);
};
}
感谢您的帮助,但是如果我有100个proeprties,我将需要编写100行代码,是否有更好的方式一次访问属性valuse? – Channakeshav 2014-10-08 21:34:41
你的属性/对象的属性是如何定义的? – Jhon 2014-10-08 21:37:45
我正在使用实体框架,并定义所有属性并让它们列表然后循环使用 – Channakeshav 2014-10-08 22:10:44
- 1. 从列表中写入文本文件
- 2. CGpoint阵列写入到文本文件
- 3. 列表写文本文件
- 4. 列表写文本文件
- 5. 写入一个文本文件到表使用VBScript
- 6. 写入到从列表<T> C#中的文本文件
- 7. 如何在Python中将文本列表写入文本文件
- 8. 将文件列表写入文件 - 写入的文件未找到
- 9. 使用Javascript写入文本文件
- 10. 使用流写入文本文件
- 11. 避免将空白空间写入文本列表到文本文件
- 12. 使用Python将文件列表写入文件
- 13. Scala-使用foreach将文件列表写入文件
- 14. 使用文本文件将文件名添加到列导入
- 15. 如何通过使用Vbscript写入和写入文本文件
- 16. 写入到Java WebService的文本文件
- 17. 用Python编写列表项到文本文件
- 18. 写入到一个文本文件中使用Python
- 19. Java写入文本文件
- 20. Android写入文本文件
- 21. 写入文本文件
- 22. 如何将目录树列表写入文本文件?
- 23. 如何逐行将子列表写入文本文件?
- 24. 将列表中的每个项目写入文本文件
- 25. 将数组列表写入文本文件C#
- 26. python,将列表内容写入文本文件
- 27. 写入文本文件作为制表符分隔列在Python
- 28. 将列表写入文本文件,保留名称,R
- 29. 将多个列表写入Python中的文本文件 - 2.7
- 30. 将列表<string>的内容写入文本文件
你是怎么写你的文件的?请附上您的代码,以便我们了解如何为您提供帮助。 – Jhon 2014-10-08 19:17:23
使用(_streamWriter =新的StreamWriter(文件路径(Constants.Data,文件名))) { 如果(_myList = NULL && _myList.Count> 0!) { _streamWriter.Write(_textFileHeader.DataColumnHeader(COLUMNNAMES));的foreach (_mylist中的字符串子列表) {_streamWriter.Write(sublist.Name);} – Channakeshav 2014-10-08 19:29:13
我已经使用FileStream和StreamWriter来编写文件,因为我有100个属性,我需要编写100行代码才能将每个文本写入文本file.Is有简单的方法吗? – Channakeshav 2014-10-08 19:31:40