Application.Restart()在C#中使用该方法应该重新启动当前的应用程序:但似乎这并不总是有效.
这个问题是否有原因,有人可以告诉我,为什么它不能一直工作?
我想用函数来构建我的应用程序来重启自己.我在codeproject上找到了
ProcessStartInfo Info=new ProcessStartInfo();
Info.Arguments="/C choice /C Y /N /D Y /T 3 & Del "+
Application.ExecutablePath;
Info.WindowStyle=ProcessWindowStyle.Hidden;
Info.CreateNoWindow=true;
Info.FileName="cmd.exe";
Process.Start(Info);
Application.Exit();
Run Code Online (Sandbox Code Playgroud)
这根本不起作用......另一个问题是,如何再次启动呢?也许还有启动应用程序的参数.
编辑:
http://www.codeproject.com/script/Articles/ArticleVersion.aspx?aid=31454&av=58703
Run Code Online (Sandbox Code Playgroud) 我正在重构由其他开发人员编写的中型WinForms应用程序,并且几乎每个类的每个方法都被一个try-catch块包围.99%的时间这些catch只阻止记录异常或清理资源并返回错误状态.
我认为很明显,这个应用程序缺乏适当的异常处理机制,我打算删除大多数try-catch块.
这样做有什么不利之处吗?你会怎么做?我打算:
要适当地记录异常并阻止它们传播给用户,请拥有一个Application.ThreadException处理程序
对于需要清理资源的情况,请保留try-catch块
更新:使用using或try-finally阻止是一种更好的方法.谢谢你的回复.
欢迎任何更正/建议.
编辑:在第3项中,"return-false-on-error"我的意思是这样的方法:
bool MethodThatDoesSomething() {
try {
DoSomething(); // might throw IOException
} catch(Exception e) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我想把它重写为:
void MethodThatDoesSomething() {
DoSomething(); // might throw IOException
}
// try-catch in the caller instead of checking MethodThatDoesSomething's return value
try {
MethodThatDoesSomething()
} catch(IOException e) {
HandleException(e);
}
Run Code Online (Sandbox Code Playgroud) 我开发了一个关于C#的程序.在我的程序中,当用户保存个人设置时,程序可以遵循规则.1-保存设置.保存后关闭所有表格和程序.3-并重启程序.
我完成了1.和2.步骤
我怎么能完成3.步骤?谢谢你的耐心.