相关疑难解决方法(0)

为什么Application.Restart()不可靠?

Application.Restart()在C#中使用该方法应该重新启动当前的应用程序:但似乎这并不总是有效.

这个问题是否有原因,有人可以告诉我,为什么它不能一直工作?

.net c#

44
推荐指数
4
解决办法
6万
查看次数

自行重启应用程序

我想用函数来构建我的应用程序来重启自己.我在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)

.net c# windows batch-file application-restart

17
推荐指数
5
解决办法
8万
查看次数

删除过多的try-catch块

我正在重构由其他开发人员编写的中型WinForms应用程序,并且几乎每个类的每个方法都被一个try-catch块包围.99%的时间这些catch只阻止记录异常或清理资源并返回错误状态.

我认为很明显,这个应用程序缺乏适当的异常处理机制,我打算删除大多数try-catch块.

这样做有什么不利之处吗?你会怎么做?我打算:

  • 要适当地记录异常并阻止它们传播给用户,请拥有一个Application.ThreadException处理程序

  • 对于需要清理资源的情况,请保留try-catch块

更新:使用usingtry-finally阻止是一种更好的方法.谢谢你的回复.

  • 在"return-false-on-error"的方法中,让异常传播并在调用者中捕获它

欢迎任何更正/建议.

编辑:在第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# exception-handling try-catch winforms

9
推荐指数
1
解决办法
1679
查看次数

关闭程序后重启应用程序

我开发了一个关于C#的程序.在我的程序中,当用户保存个人设置时,程序可以遵循规则.1-保存设置.保存后关闭所有表格和程序.3-并重启程序.

我完成了1.和2.步骤

我怎么能完成3.步骤?谢谢你的耐心.

c# winforms application-restart

3
推荐指数
1
解决办法
899
查看次数