我必须能够保存文件,不幸的是它可能会非常大,因此保存它可能需要几分钟.因为我需要从GUI线程执行此操作,所以我不想阻止GUI执行.我正在考虑在单独的线程上尝试保存操作,以允许主GUI线程继续执行.
是否有一个很好的(简单)方法来生成一个新线程,保存文件,并销毁线程没有任何讨厌的副作用?!
必须说我从来没有必须使用线程所以我是一个完整的新手!任何和所有的帮助将不胜感激!
您可以使用BackGroundWorker组件,因为它会为您抽象一些线程部分.
BackgroundWorker
(正如Frederik所建议的那样)是一个不错的选择,特别是如果你想在保存时向UI报告进度.一个为BackgroundWorker的教程搜索得到了很多次,所以你应该能够遵循其中的一个,让你开始.
有一点需要注意:是否有任何方法可以更改您尝试从UI线程保存的数据结构?如果是这样,您应该在保存时禁用UI的这些方面 - 它可能(可能!)在保存数据的一半时间不好,然后允许用户更改其中的一部分.如果您能够有效地将数据传递给后台线程,然后不从UI线程触摸它,那将使您的生活变得更加轻松.