草庐IT

DLL_THREAD_ATTACH

全部标签

c# - Thread.CurrentPrincipal.Identity.Name 在 WPF 中为空

编辑简单的问题是,我怎样才能让Thread.CurrentPrincipal.Identity.Name让当前用户在WPF中登录?结束编辑我正在尝试调用一个现有方法(不在任何类型的服务中;只是POCO中的一个方法)来检索当前用户:Thread.CurrentPrincipal.Identity.Name这段代码是由其他人编写的,并且(大概)与他的ASP.NETMVC项目一起工作。我正在尝试从WPF中调用相同的方法,但名称现在为空。我能做些什么吗? 最佳答案 将Thread.CurrentPrincipal设置为newWindowsP

c# - CLR 如何加载 DLL?

我的假设始终是CLR在应用程序域启动时加载了它需要的所有DLL。但是,我写了一个例子,让我质疑这个假设。我启动我的应用程序并检查加载了多少模块。Process[]ObjModulesList;ProcessModuleCollectionObjModulesOrig;//GetallmodulesinsidetheprocessObjModulesList=Process.GetProcessesByName("MyProcessName");//Populatethemodulecollection.ObjModulesOrig=ObjModulesList[0].Modules;C

c# - 如何将 NLog 用于 DLL

我正在尝试使用NlogRefresh1.0为类库项目实现一个简单的日志。从dll中实例化时,nlog似乎不会创建日志文件。还有其他解决方法吗?我的配置文件是这样的:我知道这个配置没有任何问题,因为它在一个exe项目中工作。编辑:只是为了澄清:我无法访问使用我的dll作为插件的调用程序。调用程序实际上是outlook,它使用我的dll作为插件。我想保留一个日志,它只与我的dll相关,与outlook本身无关。 最佳答案 您必须将nlog.config添加到使用dll的exe文件的位置!编辑:您不必修改exe文件,只需将nlog.con

c# - 如何保护dll?

如何保护我的项目的dll,使其不能被其他人引用和使用?谢谢 最佳答案 简短的回答是,除了显而易见的事情之外,您无能为力。您可能想要考虑的显而易见的事情(大致按照难度递增和合理性递减的顺序)包括:静态链接,因此没有可攻击的DLL。去除所有符号。使用.DEF文件和导入库只进行匿名导出,仅通过其导出ID知道。将DLL保存在资源中并仅在运行时将其公开在文件系统中(以适当的模糊名称,甚至可能在运行时生成)。将所有真实函数隐藏在一个工厂方法后面,该方法将secret(更好的是secret知识证明)交换为指向真实方法的函数指针表。使用从恶意软件领

c# - 在 Windows 服务中使用 Thread.Sleep()

我正在编写一个需要长时间休眠的Windows服务(最长休眠时间为15小时,最短时间为30分钟)。我目前正在使用Thread.Sleep(calculatedTime)将我的代码置于sleep模式。Thread.Sleep是最好的选择还是我应该使用计时器?我已经用谷歌搜索了一段时间,但找不到简洁的答案。由于这是一个Windows服务,我不必担心锁定UI,所以我想不出不使用Thread.Sleep的理由。如有任何见解,我们将不胜感激。 最佳答案 我会使用计时器Thread.Sleep,它可能会导致阻塞,从而阻止服务关闭。如果间隔如此广泛

c# - Visual Studio 找不到我引用的 DLL 的命名空间

这是一个非常令人沮丧的问题。突然间我无法使用引用的DLL。我在同一解决方案中添加了对项目的程序集引用,但命名空间无法识别。我什至可以在对象查看器中看到引用。我还在没有客户端配置文件的情况下将项目更改为.NET4和3.5,但无济于事。 最佳答案 基于您的screenshot,您在多个项目中引用了同一个“ServerLibrary”DLL,但是,看起来一个引用版本是在.NET3.5中编译的,而另一个引用版本(它出现的项目引用)是在.NET4中编译的。确保所有项目都指向相同版本的DLL并重新编译所有项目。那应该可以解决您的问题。

c# - "Current thread must be set to single thread apartment (STA)"将字符串复制到剪贴板时出错

我试过来自HowtocopydatatoclipboardinC#的代码:Clipboard.SetText("Test!");我得到这个错误:Currentthreadmustbesettosinglethreadapartment(STA)modebeforeOLEcallscanbemade.EnsurethatyourMainfunctionhasSTAThreadAttributemarkedonit.我该如何解决? 最佳答案 如果您无法控制线程是否以STA模式运行(即测试、插件到其他应用程序或只是一些随机发送该调用以在无

c# - 什么时候用Task,什么时候用Thread?

我刚刚问了有关Task的问题,但意识到我实际上想问更一般的问题。有人可以总结一下任务和线程的优缺点。如何理解我应该使用任务还是线程? 最佳答案 Task是以异步方式执行某事的命令。Thread实际上是OS内核对象,它执行所请求的内容。将Task想象成一个聪明的线程聚合器/组织器,它“知道”在您的CPU上同时运行多少任务更好。它只是比多线程的常见实现更聪明(这就是为什么建议选择Microsoft的原因)。此功能可帮助您以更轻松的方式管理Threads。也看看这个ShouldiuseThreadPoolsorTaskParallelLi

c# - 如何为库 (dll) 添加 Intellisense 工具提示支持

如何为intellisense提供我在我的类(在库中)中创建的XML注释?我已经为每个方法添加了XML注释,例如://////Dosomeconnectionrequest...//////Requiredforxyz...publicvoidConnect(intval){//Somecode...}然后我标记了创建“XML文档文件”的复选框,并为其命名为“MyAssembly.xml”。重建我的解决方案(创建了一个dll和一个XML文件)。将dll添加到另一个c#项目,但那里的智能感知没有显示我的XML注释...我做错了什么? 最佳答案

c# - .NET-Assemblies 的默认 (assembly).dll.config 文件有什么用?

我对C#中的AppSettings有疑问。首先,我将描述我的情况。我的解决方案包含一个可执行程序program.exe和一个assembly.dll.程序引用程序集并使用它。程序集项目具有使用VisualStudio项目设置管理器设置的应用程序设置。现在,当我在assembly\bin\release中编译我的解决方案时文件夹中有一个assembly.dll.config包含我之前设置的设置的文件。现在我不明白的是:在我引用assembly.dll的程序项目中我检查了CopyLocal=True,但在我的program\bin\release文件夹只有assembly.dll但不是as