草庐IT

App-delegate

全部标签

c# - 它有什么区别 - 使用 Task.Run 运行 'async' Action 委托(delegate)(与默认 Action 委托(delegate)相比)?

我正在努力了解async/await并认为我确实了解有关用法的一些事情。但仍然不太清楚在下面的场景中实际好处是什么。查看Task.Run用法。第一种方法使用普通委托(delegate)并使用Thread.Sleep,但第二种方法使用“异步”委托(delegate)和Task.Delay。我的问题是:这对这个方法有什么影响(或没有影响)?该方法本身是一个异步方法。该代码正在创建一个单独的线程(通过Task.Run),并且该线程除了执行该委托(delegate)之外别无他法。因此,即使它在Task.Delay上产生等待,在这种情况下有什么用,因为线程无论如何都是一个孤立的线程,不用于任何其

c# - 如何接受任何委托(delegate)作为参数

我有兴趣编写一个方法,该方法可以接受另一个方法作为参数,但不想被锁定到特定的签名中-因为我不关心这个。我只对方法在调用时是否抛出异常感兴趣。.NETFramework中是否有允许我接受任何委托(delegate)作为参数的结构?例如,以下所有调用都应该有效(无需使用重载!):DoesItThrowException(doSomething(arg));DoesItThrowException(doSomethingElse(arg1,arg2,arg3,arg4,arg5));DoesItThrowException(doNothing()); 最佳答案

c# - 我的 .NET 应用程序何时/如何使用其 App.Config 文件?

我以前从没想过;但我最近了解到如何修改app.config文件以添加/删除跟踪监听器(例如,将所有Trace.WriteLine输出重定向到文本文件)。但是我不太明白它是如何工作的?有人可以解释一下吗?我知道相应的C#代码与配置(在此示例中)执行相同的操作-该代码是否在我的应用程序入口点之前生成/执行? 最佳答案 doesthatcodegetgenerated/executedbeforemyapplication'sentrypoint?将配置文件视为标准文本文件。如果您的应用程序代码不读取它也不对其进行任何操作,则什么也不会发

c# - 如何以编程方式修改 app.config 中的 assemblyBinding?

我试图通过使用XmlDocument类并直接修改值来在安装时更改bindingRedirect元素。这是我的app.config的样子:......然后我尝试使用以下代码将1.0更改为2.0privatevoidSetRuntimeBinding(stringpath,stringvalue){XmlDocumentxml=newXmlDocument();xml.Load(Path.Combine(path,"MyApp.exe.config"));XmlNoderoot=xml.DocumentElement;if(root==null){return;}XmlNodenode=r

c# - Func 委托(delegate)不链接方法

让我们想象一下简单的委托(delegate)调用:voidMain(){Functfunc=null;tfunc+=Add;//bindfirstmethodtfunc+=Sub;//bindsecondmethodConsole.WriteLine(tfunc(2,2));}privatestringAdd(inta,intb){return"Add:"+(a+b).ToString();}privatestringSub(inta,intb){return"Sub:"+(a-b).ToString();}这个程序的结果是:Sub:0那么,为什么Add方法没有被调用呢?我希望先调用方

c# - 如何从 Action 委托(delegate)创建 MethodInfo

我正在尝试开发一个NUnit插件,它从一个包含Action委托(delegate)列表的对象动态地将测试方法添加到套件中。问题是NUnit似乎严重依赖反射来完成工作。因此,似乎没有简单的方法可以将我的Action直接添加到套件中。相反,我必须添加MethodInfo对象。这通常会起作用,但Action委托(delegate)是匿名的,因此我必须构建类型和方法来完成此操作。我需要找到一种更简单的方法来执行此操作,而无需使用Emit。有谁知道如何轻松地从Action委托(delegate)创建MethodInfo实例? 最佳答案 您是否

c# - 如何从 EventInfo 中获取委托(delegate)对象?

我需要从当前类中获取所有事件,并找出订阅它的方法。HereIgotsomeanswersonhowtodothat,但是当我只有EventInfo时,我不知道如何获得delegate。varevents=GetType().GetEvents();foreach(vareinevents){Delegated=e./*GetDelegateFromThisEventInfo()*/;varmethods=d.GetInvocationList();}是否可以通过EventInfo获得委托(delegate)?怎么办? 最佳答案 语句

c# - 语句 "delegates are secure"是什么意思?

在C#documentation对于委托(delegate),它说“委托(delegate)是一种引用类型,可用于封装命名或匿名方法。委托(delegate)类似于C++中的函数指针;但是,委托(delegate)是类型安全的并且安全”我的问题是,委托(delegate)“安全”是什么意思? 最佳答案 委托(delegate)强制对方法进行类型安全调用。这通常通过编译器执行的静态类型检查来工作。但这不是唯一的方法,您可以使用Delegate.DynamicInvoke()来绕过编译器类型检查。一个例子:usingSystem;cla

c# - 获取 C# WinForms App 的应用程序图标

我使用“项目属性”选项卡为C#WinForms应用分配了一个图标。此图标在构建时随程序list一起提供。有没有办法在运行时获取此图标的System.Drawing.Icon对象,而无需再次将其嵌入到资源中?我已完成研究;有办法extractaniconoutofanEXE,但我找不到从应用程序中从正在运行的C#应用程序中提取图标的任何东西。 最佳答案 您看到链接中的第二个答案了吗?(HowcanIgettheiconfromtheexecutablefileonlyhavinganinstanceofit'sProcessinC#)

C# 读取注册表 : ProductID returns null in x86 targeted app. "Any CPU"工作正常

我最近搬到了一台装有VS2010的W764位机器上。我的项目设置为在AnyCPU上运行。当我将其更改为针对x86时,我注意到我的某些注册表调用不再有效。我正在尝试像这样读取ProductID字段:RegistryKeywindowsNTKey=Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\WindowsNT\CurrentVersion");objectproductID=windowsNTKey.GetValue("ProductId");productID在x86模式下运行时始终为null,在“任何CPU”下运行时它可以