【发布时间】:2011-07-31 08:38:28
【问题描述】:
我正在使用带有 C#/VS2010 的 ReSharper。我正在运行一个单独的线程,该线程需要打开一个表单以在主 UI 线程上向用户显示一些信息。我的代码是这样的(效果很好):
this.Invoke(new MethodInvoker(delegate()
{
DisplayDownload form2 = new DisplayDownload();
form2.TopMost = true;
form2.Show();
}));
ReSharper 想把它改成这个,我让它(但下面的代码根本不显示表单):
this.Invoke(new MethodInvoker(delegate()
{
using (var form2 = new DisplayDownload {TopMost = true})
{
form2.Show();
}
}));
ReSharper 修改后的代码不再显示该表单。如果我回到旧代码,它工作正常。
为什么 ReSharper 改了之后就不行了?有人可以向我解释一下是什么导致修改后的代码不再显示表单吗?
【问题讨论】:
标签: c# winforms multithreading resharper