小编win*_*ngs的帖子

ReSharper,如何显示所有提示?任何键盘

VS2010,ReSharper 6.0完整版,如何显示所有提示?还有键盘快捷键吗?

c# resharper keyboard-shortcuts visual-studio-2010

8
推荐指数
1
解决办法
1947
查看次数

创建新的HashSet或在调用hashSet.clear()之后重用是否更好?

我想在HashSet中处理一些新数据,不需要任何旧数据或旧的HashSet对象.其他地方没有引用旧的HashSet对象.

简单地做hashset = new HashSet<String>()并让JVM释放旧HashSet对象的内存或者我应该调用hashSet.clear()并重用相同的HashSet 是否更好?

根据openJDK,hashSet.clear()是:

public void clear() {
    map.clear();
}
Run Code Online (Sandbox Code Playgroud)

和map.clear():

public void clear() {
     modCount++;
     Entry[] tab = table;
     for (int i = 0; i < tab.length; i++)
         tab[i] = null;
     size = 0;
 }
Run Code Online (Sandbox Code Playgroud)

由于map.clear()会迭代所有条目,所以当hashSet很大时会耗费时间吗?在这种情况下推荐使用哪一个,构造函数方法或clear()方法?

java memory jvm hashset

6
推荐指数
2
解决办法
1155
查看次数

SaveFileDialog没有在新线程中显示?

我很长一段时间都对这个问题感到困惑.我使用System.Threading启动新线程,就像这样:

ParameterizedThreadStart threadFileExport = FileExport;
Thread threadExport = new Thread(threadFileExport)
{
    IsBackground = true,
    Name = "threadExport",
    Priority = ThreadPriority.AboveNormal
};
threadExport.Start(_dataTable);
Run Code Online (Sandbox Code Playgroud)

public void FileExport(object objTable)
{

     SaveFileDialog saveFileDialog = new SaveFileDialog
     {
         DefaultExt = "xlsx",
         Filter = "Excel 2007-2010|*.xlsx|" +
                  "Excel95,97,2003|*.xls|",
         FileName = "table.xlsx",
         Title = "Save as. . ."
     };
saveFileDialog.ShowDialog();
}
Run Code Online (Sandbox Code Playgroud)

但是对话框不会显示,并且在执行"ShowDialog"时线程似乎会立即中止.这是一个错误还是我弄错了?后台线程可以显示保存文件对话框吗?

c# multithreading dialog winforms

1
推荐指数
1
解决办法
2907
查看次数