首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

|應用程序域討論|關閉先創建的AppDomain的窗體,會導致後打開的AppDomain的窗體也關閉!该如何处理

2012-04-11 
|應用程序域討論|關閉先創建的AppDomain的窗體,會導致後打開的AppDomain的窗體也關閉!創建一個Windows應用

|應用程序域討論|關閉先創建的AppDomain的窗體,會導致後打開的AppDomain的窗體也關閉!
創建一個Windows應用程序,新建一個Form,添加一個Button,Button的Click事件代碼如下:

C#版本代碼

C# code
        private void button1_Click(object sender, EventArgs e)        {            AppDomain domain = AppDomain.CreateDomain("newdomain");            domain.ExecuteAssemblyByName(Assembly.GetExecutingAssembly().FullName);        }


VB版本代碼
VB.NET code
        Private Sub Button1_Click(ByVal sender As Object ,ByVal e As EventArgs)            Dim domain As AppDomain= AppDomain.CreateDomain("newdomain")            domain.ExecuteAssemblyByName(Assembly.GetExecutingAssembly().FullName)        End Sub


編譯,運行,在窗口上連續點擊按鈕,會彈出幾個新的窗體(創建了新的應用程序域)。
關閉某個先打開的窗體,會發現在該窗體之後打開的窗體都會關閉!如果把後打開的窗體先關閉,就不會有這個問題。

是何原因?如何解決?
歡迎參與討論,如果問題能夠解決,再加100分.

[解决办法]
比较蹊跷
楼主最好把exe文件发上来,给俺们观摩观摩
也好找出纰漏
[解决办法]
^ō^ 接点分...
[解决办法]
接分
[解决办法]
这样就以了随意关闭窗口了
private void button1_Click(object sender, EventArgs e) 

Thread t = new Thread(new ThreadStart(tt)); 
t.Start(); 



private static void tt() 


AppDomain domain = AppDomain.CreateDomain("newdomain"); 
domain.ExecuteAssemblyByName(Assembly.GetExecutingAssembly().FullName); 
}
[解决办法]
学习一下~
[解决办法]
翻编译一下就清楚了

热点排行