我在工作中维护着许多控制台应用程序,我在其中许多应用程序中注意到的一件事是它们调用了Environment.Exit(0)。示例程序如下所示:publicclassProgram{publicstaticvoidMain(string[]args){DoStuff();Environment.Exit(0);}}我不明白原程序员这样做的意图是什么?在我看来,即使没有Environment.Exit语句,程序也应该可以正常退出。也就是说,对于其中一个程序,它的控制台窗口即使在它应该关闭之后仍然存在,所以我真的不确定那里发生了什么....我是不是漏掉了什么?或者在这种情况下应该调用Envi
我已经阅读了很多与此问题相关的帖子,但找不到答案。我正在尝试将大量数据从Excel加载到SQLServer中。数以千计的记录。我得到了这个异常(exception):Stringorbinarydatawouldbetruncated.Thestatementhasbeenterminated.显然有些值超过了数据库中的字段大小。错误来自SQLServerAFIK。我的问题-我怎么可能知道是什么记录和什么字段值导致的?EF异常中没有具体细节,除了我提到的那个。感谢任何帮助。有人要代码片段,其实很简单,问题不在代码://employeesisaListcollectionloaded
我已经阅读了很多与此问题相关的帖子,但找不到答案。我正在尝试将大量数据从Excel加载到SQLServer中。数以千计的记录。我得到了这个异常(exception):Stringorbinarydatawouldbetruncated.Thestatementhasbeenterminated.显然有些值超过了数据库中的字段大小。错误来自SQLServerAFIK。我的问题-我怎么可能知道是什么记录和什么字段值导致的?EF异常中没有具体细节,除了我提到的那个。感谢任何帮助。有人要代码片段,其实很简单,问题不在代码://employeesisaListcollectionloaded
我目前正在编写一个C#控制台应用程序,它生成许多指向网站上不同图像的URL,然后使用WebClient.DownloadDataAsync()作为字节流下载。我的问题是,一旦进行了第一个异步调用,控制台应用程序就会认为程序已完成并在异步调用返回之前终止。通过使用Console.Read(),我可以强制控制台保持打开状态,但这似乎不是一个很好的设计。此外,如果用户在此过程中按下回车键(当控制台正在等待输入时),程序将终止。有没有更好的方法来防止在等待异步调用返回时关闭控制台?编辑:调用是异步的,因为我在下载发生时通过控制台向用户提供状态指示器。 最佳答案
我目前正在编写一个C#控制台应用程序,它生成许多指向网站上不同图像的URL,然后使用WebClient.DownloadDataAsync()作为字节流下载。我的问题是,一旦进行了第一个异步调用,控制台应用程序就会认为程序已完成并在异步调用返回之前终止。通过使用Console.Read(),我可以强制控制台保持打开状态,但这似乎不是一个很好的设计。此外,如果用户在此过程中按下回车键(当控制台正在等待输入时),程序将终止。有没有更好的方法来防止在等待异步调用返回时关闭控制台?编辑:调用是异步的,因为我在下载发生时通过控制台向用户提供状态指示器。 最佳答案
我正在使用如下代码以编程方式启动InternetExplorer:ProcessStartInfostartInfo=newProcessStartInfo("iexplore.exe");startInfo.WindowStyle=ProcessWindowStyle.Hidden;startInfo.Arguments="http://www.google.com";ProcessieProcess=Process.Start(startInfo);这会生成2个在Windows任务管理器中可见的进程。然后,我尝试通过以下方式终止进程:ieProcess.Kill();这导致任务管理
我正在使用如下代码以编程方式启动InternetExplorer:ProcessStartInfostartInfo=newProcessStartInfo("iexplore.exe");startInfo.WindowStyle=ProcessWindowStyle.Hidden;startInfo.Arguments="http://www.google.com";ProcessieProcess=Process.Start(startInfo);这会生成2个在Windows任务管理器中可见的进程。然后,我尝试通过以下方式终止进程:ieProcess.Kill();这导致任务管理
我可以连接到AppDomain.CurrentDomain.UnhandledException以记录来自后台线程的异常,但如何防止它们终止运行时? 最佳答案 首先,您真的应该尽量不要在后台线程中抛出异常而不处理异常。如果您控制委托(delegate)的运行方式,请将其封装在一个trycatchblock中,并想出一种方法将异常信息传递回您的主线程(如果您显式调用了BeginInvoke,则使用EndInvoke,或者通过在某处更新一些共享状态)。忽略未处理的异常可能很危险。如果您遇到真正无法处理的异常(想到OutOfMemor
我可以连接到AppDomain.CurrentDomain.UnhandledException以记录来自后台线程的异常,但如何防止它们终止运行时? 最佳答案 首先,您真的应该尽量不要在后台线程中抛出异常而不处理异常。如果您控制委托(delegate)的运行方式,请将其封装在一个trycatchblock中,并想出一种方法将异常信息传递回您的主线程(如果您显式调用了BeginInvoke,则使用EndInvoke,或者通过在某处更新一些共享状态)。忽略未处理的异常可能很危险。如果您遇到真正无法处理的异常(想到OutOfMemor
我从我读过的关于该主题的大量文章中了解到Thread.Abort()是邪恶的,所以我目前正在删除我的abort's以便以更清洁的方式替换它;在比较了stackoverflow上人们的用户策略之后,然后阅读了"Howto:CreateandTerminateThreads(C#ProgrammingGuide)"来自MSDN,两者都说明了一种非常相同的方法——即使用volatilebool方法检查策略,这很好,但我还有一些问题......对我来说,最突出的一点是,如果您没有一个简单的工作进程,它只是运行一个循环处理代码怎么办?例如对我来说,我的进程是一个后台文件上传进程,我实际上循环遍历