草庐IT

c# - 我可以在 C# 中创建一个全局异常处理程序,让代码在之后继续运行吗?

在.NET中,默认的异常处理程序会让用户继续运行程序。但是,我想要一个全局异常处理程序,将堆栈跟踪保存到“errorlog.txt”文件中,以便用户可以将其发送给我,而不必记住单击“详细信息”并将其复制出对话框(并删除所有关于加载程序集等无用的废话)。但是当我这样做时,代码不知道如何继续,所以我所能做的就是退出应用程序。有什么办法可以两全其美吗?(是的,我知道我要求的本质上是带有日志记录的“OnErrorResumeNext”,但我真的认为它会很有用!) 最佳答案 AppDomain.CurrentDomain.UnhandledE

c# - 我需要在 C# .Net 中创建一个线程安全的静态变量

好吧,它比问题复杂一点。classA{staticintneedsToBeThreadSafe=0;publicstaticvoidM1(){needsToBeThreadSafe=RandomNumber();}publicstaticvoidM2(){print(needsToBeThreadSafe);}}现在我要求在M1()和M2()之间调用“needsToBeThreadSafe”保持线程安全。 最佳答案 怎么样:publicstaticvoidM1(){Interlocked.Exchange(refneedsToBeT

c# - 我的 winform 应用程序关闭时如何停止线程

我有一个单例,它有一个正在运行的线程,用于从服务器获取记录。但是当我停止我的winform应用程序时,线程继续运行。我试图在我的单例中创建一个析构函数来中止正在运行的线程,但它对线程没有任何影响——我知道正在调用析构函数。我正在寻找有关在我的应用程序关闭时应该如何关闭线程的建议。谢谢C#、.net2 最佳答案 线程可以是:前台:将使您的程序保持事件状态直到完成。背景:当您关闭应用程序时将终止。当你创建一个线程时,它默认是一个前台线程。你可以这样改变:Threadt=newThread(myAction);t.IsBackground

c# - 当它绑定(bind)到 XmlDataProvider 时,如何在 WPF DataGrid 中创建一个新行?

我有一个项目,其中XmlDataProvider绑定(bind)到WPFDataGrid控件。我在DataGrid上设置了如下绑定(bind):用户可以毫无问题地使用DataGrid编辑条目。我无法完成的是允许用户使用DataGrid添加新行(即新人)。我怎么能允许这样做? 最佳答案 确保您设置了:CanUserAddRows="True"并且绑定(bind)类的默认构造函数可用。 关于c#-当它绑定(bind)到XmlDataProvider时,如何在WPFDataGrid中创建一个新

c# - Windows 任务计划程序或 WebApi 中的 TaskService 函数

我想在ASP.NETWebAPI中创建一些函数,这些函数应该每天在特定时间执行并执行特定任务,如更新状态/记录/生成电子邮件、SMS。我应该在代码中创建一个TaskServiceusingSystem;usingMicrosoft.Win32.TaskScheduler;classProgram{staticvoidMain(string[]args){//Gettheserviceonthelocalmachineusing(TaskServicets=newTaskService()){//CreateanewtaskdefinitionandassignpropertiesTas

c# - 如何使用 C# 创建 appdata 文件夹

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。嗯,我不知道怎么打字,所以请耐心等待。这超出了我的范围,我仍然是C#的新手。我基本上需要在运行程序的当前用户的漫游应用程序数据中创建一个文件夹。我还需要访问应用程序数据部分中的另一个文件夹,然后用我创建的应用程序数据文件夹中的文件副本替换文件。

c# - 在该文件夹中创建一个新文件夹和一个文本文件

我想创建一个名为log的新文件夹,并在该文件夹中创建一个名为log.txt的文本文件,这是我要创建的路径D:\NewFolder我试过创建一个名为log的新文件夹stringFilePathSave=Folder.ToString()+System.IO.Directory.CreateDirectory(@"D:\NewFolder\Log");我用这个创建了一个文本文件stringFilePathSave=Folder.ToString()+"log.txt";File.WriteAllText(FilePathSave,TextBox1.Text);但我无法像D:\NewFold

c# - 将所有枚举保存在一个地方是个好主意吗?

当我构建类库时,我通常会创建一个文件Enums.cs来保存程序集中使用的所有枚举。这是一个例子:namespaceMyNamespace{publicenumColors{Red,Green,Blue}publicenumShapes{Circle,Square,Triangle}}这使我的所有枚举都易于查找、组织良好且易于在代码中访问。我想知道为什么这不是一个好主意? 最佳答案 通常按模块化而不是按种类来安排定义会更好。 关于c#-将所有枚举保存在一个地方是个好主意吗?,我们在Stac

c# - 模拟 'System.Console' 行为

是否有一种标准方法可以通过针对接口(interface)而不是System.Console进行编程来使C#控制台应用程序可单元测试?例如,使用IConsole界面?你做过吗,用的是什么方法?当您的应用程序需要写入标准输出时,您是否公开了事件? 最佳答案 我认为您使用接口(interface)的方法可行,但我认为我不会使用事件。假设应用程序不接受命令行参数以外的用户输入,我可能会使用类似这样的东西来包装Console.Write/Console.WriteLine:publicinterfaceIConsoleWriter{voidW

c# - WCF。服务泛型方法

如何在wcf服务中使用泛型方法?我写了这段代码:[OperationContract]voidAddItem(Titem);但我收到以下错误:Type'T'cannotbeexportedasaschematypebecauseitisanopengenerictype.Youcanonlyexportagenerictypeifallitsgenericparametertypesareactualtypes. 最佳答案 你根本做不到。这是不可能的,因为soap不支持这个。看这个article,其中提到如何绕过泛型,方法是创建一个