我现在有个程序是WinForm(C/S)。程序的大体结构是这样的。主画面(即menu画面),所有的业务画面都是从这个画面衍生出来的。现在的问题是这样的,服务器端会在某些情况下进入维护状态。这个时候需要关闭用户的在客户端打开的所有业务画面。防止数据混乱。我修改了menu画面。将其衍生的画面,放入一个arraylist,服务器维护的时候,就将这个list中的所有画面都dispose掉。开始这个方法没有任何问题。但是当子画面中衍生出其他画面的时候。就会报错。现实该子子画面的主画面已经不存在了。也就是说正常的画面关闭必须要从最底层入手。但是现在代码已经写完了,不可能再大改。我现在的想法是可不可以从线程的角度入手,把除了主画面这个线程外的。其他所有子画面的线程都abort掉。不知道这个方法可不可行。谢谢各位。
2、你所说的画面是指窗体吧,如果你没有显式调用线程对象的话,不管开多少窗口都在主线程里。
3、按你这样做的话应该把所有窗体都放在arraylist里,然后按后进先出的方式调用每个窗体的close方法。