草庐IT

c# - C# 的 TIBCO EMS 故障转移重新连接 (TIBCO.EMS.dll)

我们有一个TIBCOEMS解决方案,它在2-4服务器环境中使用内置服务器故障转移。如果TIBCO管理员将服务从一台EMS服务器故障转移到另一台,则连接应该会在EMS服务级别自动转移到新服务器。对于我们使用EMS服务的C#应用程序,这不会发生-我们的用户连接在故障转移后不会转移到新服务器,我们不确定原因。我们的应用程序仅在启动时连接到EMS,因此如果TIBCO管理员在用户启动我们的应用程序后发生故障转移,他们的用户需要重新启动应用程序才能重新连接到新服务器(我们的EMS连接使用的服务器字符串包括所有4生产EMS服务器-如果第一次尝试失败,它将移动到字符串中的下一个服务器并再次尝试。我正在

c# - CollectionViewSource 不会对属性更改进行重新排序

我正在将ItemsControl绑定(bind)到CollectionViewSource。这是代码:this.Trucks=newObservableCollection();foreach(vartruckinDataRepository.Trucks.Where(t=>t.ReadyDate.Date.Equals(this.Date))){this.Trucks.Add(truck);}this.TrucksSource=newCollectionViewSource{Source=this.Trucks};this.TrucksSource.SortDescriptions.

c# - 如何强制 MSBuild 在不重新编译的情况下运行代码分析

默认情况下,代码分析仅针对已编译的项目进行。因此,当我从命令行运行MSBuild时,它仅在第一次运行代码分析。在后续调用中,将跳过代码分析。背景:我想评估CA规则,看看在启用规则时我们的代码中会有多少警告。为此,我不想重新编译所有内容——这需要一些时间——只是重新运行代码分析。你如何才能做到这一点?我正在使用VisualStudio2013和MSBuild12.0。即使明确打开代码分析也无济于事:msbuildDesktopBuild.proj/p:RunCodeAnalysis=true 最佳答案 好像是del/s*.lastco

c# - 重新编译引用的程序集时常量值不变

我在程序集中有这段代码:publicclassClass1{publicconstintx=10;}在一个不同的程序集里我有:classProgram{staticvoidMain(string[]args){Console.WriteLine(Class1.x);Console.ReadKey();}}当然输出是10,但是后来我把x改成了20:publicclassClass1{publicconstintx=20;}我重新编译了程序集并将其移动到我的命令行程序的bin目录中。然而,我的程序的输出仍然是10,直到我编译了包含main函数的程序集。为什么会这样?

c# - 让 DbDataReader 从结果集的开头重新开始读取

如何让dr.Read();在满足条件的情况下重新从头开始阅读?类似于:SqlDataReaderdr=command.ExecuteReader();for(inti=0;dr.Read();i++){if(condition){//letdr.Read()startreadingfromthebeginning}} 最佳答案 你不能。*DataReader类是仅向前迭代器。相反,您可以将结果存储在List中(或DataTable) 关于c#-让DbDataReader从结果集的开头重新

c# - WinForms ListView,在重新加载时记住滚动位置

我有一个ListView,其中填充了8列用户数据。用户可以选择启用自动刷新,这会导致ListView被清除并重新填充数据库中的最新数据。问题是当项目被清除并重新填充时,可见区域跳回到列表的顶部。因此,如果我正在查看2000项中的第1000项,返回到该项目非常不方便。基本上,我要问的是,如何获取当前的滚动距离(x和y)然后恢复它们? 最佳答案 我只是想为那些拼命尝试使用有问题的ListView.TopItem属性的人提供一些信息:您必须在调用ListView.EndUpdate后设置TopItem属性ListView控件的项目必须将它

c# - 将图像设置为图像源时覆盖(重新保存)图像时出现问题

大家好,我在图片权限方面遇到了一些问题。我正在从文件加载图像,调整其大小,然后将其保存到另一个文件夹。然后我这样显示:uriSource=newUri(Combine(imagesDirectoryTemp,generatedFileName),UriKind.Absolute);imgAsset.Source=newBitmapImage(uriSource);这工作正常,如果用户随后立即选择另一个图像并尝试将其保存在原始文件上,就会出现问题。保存图像时发生异常“ExternalException:GDI+中发生一般性错误。”经过一些尝试后,我将错误缩小到imgAsset.Sourc

c# - 自动重新生成设计器文件

最近我一直在对我们使用的许多控件进行一些改进,例如为属性提供默认值以及将按钮设置为私有(private)而不是protected。通过进行此类调整,您需要重新生成具有此控件的窗体或继承自该控件的控件的设计器文件。在过去,这并不是真正的问题,因为我们只有20-30个表格。目前我们有300多个表单,这意味着在VS2010中打开相同数量的设计器。所以我的问题是:您是否知道一种自动执行此过程以便重新生成所有表单的方法?我一直在考虑寻找设计器文件并打开文件的宏(最多打开25-50个文件以确保VS不会崩溃),但我一直无法得到这个工作。希望有人给点建议! 最佳答案

c# - 为什么 volatile 和 MemoryBarrier 不阻止操作重新排序?

如果我正确理解volatile和MemoryBarrier的含义,那么下面的程序将永远无法显示任何结果。每次我运行它时,它都会捕获写入操作的重新排序。我在Debug或Release中运行它并不重要。将它作为32位或64位应用程序运行也没有关系。为什么会这样?usingSystem;usingSystem.Threading;usingSystem.Threading.Tasks;namespaceFlipFlop{classProgram{//Declaringthesevariablesasvolatileshouldinstructcompilerto//flushallcache

c# - 内存重新排序会导致 C# 访问未分配的内存吗?

据我了解,C#是一种安全语言,不允许访问未分配的内存,除非通过unsafe关键字。但是,它的内存模型允许在线程之间存在不同步访问时重新排序。这会导致竞争危险,其中对新实例的引用似乎在实例完全初始化之前可用于竞争线程,并且是双重检查锁定的一个众所周知的问题。ChrisBrumme(来自CLR团队)在他们的MemoryModel中解释了这一点文章:Considerthestandarddouble-lockingprotocol:if(a==null){lock(obj){if(a==null)a=newA();}}Thisisacommontechniqueforavoidingaloc