我是一名编程初学者,看了几篇教程后仍不清楚以下内容:
当点击按钮时,该事件会创建一个类的实例:
private void button2_Click(object sender, RoutedEventArgs e)
{
int a = 1;
myClass test = new myClass(a);
}
我的类正在进行长时间处理工作(几分钟)。如果我在按钮上点击5次,它会创建5个实例吗?还是“test”会被覆盖4次?
谢谢
我是一名编程初学者,看了几篇教程后仍不清楚以下内容:
当点击按钮时,该事件会创建一个类的实例:
private void button2_Click(object sender, RoutedEventArgs e)
{
int a = 1;
myClass test = new myClass(a);
}
我的类正在进行长时间处理工作(几分钟)。如果我在按钮上点击5次,它会创建5个实例吗?还是“test”会被覆盖4次?
谢谢
DoWork()
和WorkCompleted()
方法(如果需要)。 - BrokenGlass每次单击它都会创建多个实例。但是,如果工作是同步的并阻塞UI线程,则在工作完成之前无法再次单击它。如果您的工作是异步的,则每次单击都会创建一个新实例。
相反,请尝试...
private myClass _test;
private void button2_Click(object sender, RoutedEventArgs e)
{
int a = 1;
if (_test == null)
{
_test = new myClass(a);
}
}
尽管如此,我不建议在UI线程上进行同步工作。