草庐IT

c# - 如何提高非虚拟化 DataGrid 的排序性能?

我相信你们中的大多数人现在会对为什么我们必须关闭wpf数据网格的虚拟化感到惊讶。虽然虚拟化确实有助于减少内存占用,但它增加了CPU开销并且滚动体验并非完美无缺。根据客户的要求,我们不得不禁用数据网格中的虚拟化并进一步优化它,现在它可以非常顺畅地上下滚动,没有任何延迟。缺点是数据被预加载并保存在内存中。这是我们可以接受的解决方案。然而排序现在成了一个大问题。虽然使用CustomSorter:IComparer确实是比通常的SortDecriptors更好的排序替代方案,但它在我们的案例中几乎没有任何区别,因为整行都被重绘了。有什么方法可以提高非虚拟化数据网格的排序速度吗?非常感谢,更新:

c# - 非事件项目的列表框系统颜色?

我已经更改了以下系统颜色:我不确定如何调用它,但我称之为“InactiveSelectedItem”的是哪个SystemColor?每次我失去对SelectedItem的关注时,它都会更改为这种颜色。如果有人能帮助我,那就太好了。我已经使用混合来检查但我找不到。颜色是#F0F0F0。例子: 最佳答案 您正在寻找SystemColors.InactiveSelectionHighlightBrushKey(.NET4.5) 关于c#-非事件项目的列表框系统颜色?,我们在StackOverf

c# - 为什么 C# 无法从非泛型静态方法的签名中推断泛型类型参数类型?

我进行了以下推理测试:staticclassInferenceTest{staticvoidTakeInt(inta){}staticintGiveInt(){return0;}staticintTakeAndGiveInt(inta){return0;}staticvoidConsumeAction1(Actiona){}staticvoidConsumeFunc1(Funcf){}staticvoidConsumeFunc2a(Funcf){}staticvoidConsumeFunc2b(Funcf){}staticvoidConsumeFunc2c(Funcf){}static

c# - 导致来自非网络应用程序的 Google Analytics 日志(例如,通过 WebClient)

我想收集一些关于我的应用程序使用情况的统计数据,并且由于我已经在GoogleAnalytics中拥有网络统计数据,我认为如果我可以从应用程序发送一个导致命中的请求会很酷分析,例如。/app/v1.0/调试这可以让我看到我的应用程序启动的频率(或其他)。我在网上看了看,发现了一些人在做类似事情的例子(有些人是为了解决Javascript被禁用的问题,而其他人做的和我一样),但在C#中没有。我尽可能地翻译了代码,但几天前我已经调用了几次,但日志中没有显示任何内容:(//SendahittoGoogleAnalyticssowecantrackwhichversionsarebeinguse

c# - 处理内存泄漏的非托管 dll

我有一个c#应用程序,它依赖于第三方非托管程序集来访问某些硬件。非托管代码存在内存泄漏,每次访问后内存消耗将增加~10mb。问题是已知的;没有错误修正可用。有没有一种方法可以让我在不定期重启的情况下继续使用这个程序集?我尝试创建一个单独的AppDomain,通过appDomain.CreateInstanceAndUnwrap()将有问题的代码加载到该AppDomain中,然后通过AppDomain.Unload()卸载该域.然而,这显然不会释放该域使用的非托管内存,只会释放托管内存。我还可以将应用程序拆分为两个独立的部分,然后仅重新启动具有非托管dll的部分。然而,这将意味着重大的重

c# - 去除非红色调像素

我有一个非常简单的图像处理应用程序。Iamtryingtoremovethepixelswhichdonotinvolveredtones.到目前为止,基本代码似乎可以实现我想要的。privatevoidremoveUnRedCellsBtn_Click(objectsender,EventArgse){bytethreshold=Convert.ToByte(diffTxtBox.Text);byter,g,b;for(inti=0;i基本上,如果(红色和蓝色)或(红色和绿色)的差异小于阈值,它会将像素设置为白色。MyresultsseemstobepromisinghoweverI

c# - 线程还是非线程

我正在构建一个相当简单的应用程序,它执行几个单独的HTTPWebRequests,每个都有自己的计时器。我不太可能需要同时运行3个以上的单独请求。如果一个TimerTick在另一个HTTPWebRequest正在进行时触发,那么TimerTick触发的事件会发生什么?我应该添加线程吗? 最佳答案 答案几乎总是——不,不要仅仅因为可以就使用线程。考虑先进行异步调用,因为这样更容易编写正确的代码。如果您需要额外的参数,它可能会更有效地使用资源(因为线程不是无限的资源)。链接:HowtouseHttpWebRequest(.NET)asy

c# - 具有非依赖参数的构造函数注入(inject)

我有一个像这样的接口(interface)ITradingApi:publicinterfaceITradingApi{IOrderCreateOrder(...);IEnumerableGetAllSymbols();//...}这意味着成为交易软件供应商的不同API的外观。我的View模型在其构造函数中依赖于此交易API:publicclassMainViewModel{publicMainViewModel(ITradingApitradingApi){/*...*/}//...}我使用Ninject作为IoC容器,所以我将像这样创建我的View模型的实例:varvm=kerne

c# - 如何通过引用修改该字符串的非托管 C 库来发送字符串?

我是与非托管库交互的新手。我有一个非托管C函数,它通过函数内的引用修改字符串。我在从C#传递字符串并通过C函数修改它时遇到问题。这是C函数:__declspec(dllexport)void__stdcallTest(char*name){*name="Bar";}这是C#DLL导入代码:[DllImport(@"C:/blah/mylibrary.dll")]publicexternstaticstringTest(stringname);这是我用来调用函数的代码:strings="foo";Test(s);//Iwantstobe"Bar"aftertheaboveline我曾尝试

c# - 非短路 bool 运算符和 C# 7 模式匹配

我目前正在编写一个C#应用程序,目标是.NET4.7(C#7)。在尝试使用使用“is”关键字声明变量的新方法后,我感到很困惑:if(变量是MyClassclassInstance)这样就可以了,但是在做的时候:if(true&variableisMyClassclassInstance){vara=classInstance;}VisualStudio(我使用的是2017)向我显示错误Useofunassignedlocalvariable'classInstance'。使用&(&&)的短路版本它工作正常。我是否遗漏了有关&运算符的内容?(我知道使用短路版本更常用,但此时我只是好奇)