本人发现下面两个小问题,与大家讨论。
1:程序运行后,可以移动exe的位置和重命名exe文件。但程序会锁定启动目录。
用下面代码测试发现 textBox1 textBox2 结果始终不变。
private void timer1_Tick(object sender, EventArgs e)
{
textBox1.Text = Application.StartupPath;
textBox2.Text = Application.ExecutablePath;
File.Create("aa.aa");
GC.Collect();
}
为什么程序运行后,exe文件就可以随便移动位置?难道windows是把整个exe都放进内存里了?
2:把Form的构造函数里面加上Dispose()后,Application.Run(new Form1())会报错。
public Form1()
{
InitializeComponent();
Dispose();
}
错误信息如下:Cannot access a disposed object.
Object name: 'Form1'.日有所思,这两个问题怎么解释?
1:程序运行后,可以移动exe的位置和重命名exe文件。但程序会锁定启动目录。
用下面代码测试发现 textBox1 textBox2 结果始终不变。
private void timer1_Tick(object sender, EventArgs e)
{
textBox1.Text = Application.StartupPath;
textBox2.Text = Application.ExecutablePath;
File.Create("aa.aa");
GC.Collect();
}
为什么程序运行后,exe文件就可以随便移动位置?难道windows是把整个exe都放进内存里了?
2:把Form的构造函数里面加上Dispose()后,Application.Run(new Form1())会报错。
public Form1()
{
InitializeComponent();
Dispose();
}
错误信息如下:Cannot access a disposed object.
Object name: 'Form1'.日有所思,这两个问题怎么解释?
2.荒唐。刚创建的Form又Dispose掉,接下来自然是访问出错的了。
2.Application.Run(new Form1());的时候肯定会Show()吧,你都Dispose了肯定会出错的。
只要进程列表中有相关进程,程序就在运行中,可同时运行多个进程
我拿winrar,winhex实验了,运行时候也可以重命名,移动文件。但是不能删除。
然后在调试过程中修改代码,代码也可以应用。