草庐IT

invoke-item

全部标签

c# - Control.Invoke 输入参数

根据我在C#中的发现,Control.Invoke方法要求您使用不带输入参数的委托(delegate)。有没有办法解决?我想调用一个方法来从另一个线程更新UI并将字符串参数传递给它。 最佳答案 您使用的是哪个版本的C#?如果您使用的是C#3.5,则可以使用闭包来避免传入参数。使用C#3.5publicstaticclassControlExtensions{publicstaticTResultInvokeEx(thisTControlcontrol,Funcfunc)whereTControl:Control{returncont

c# - 带有通用对象列表的 List.Contains(item)

如果您有一个列表,如果指定的属性或属性集合存在,您如何返回该项目?publicclassTesting{publicstringvalue1{get;set;}publicstringvalue2{get;set;}publicintvalue3{get;set;}}publicclassTestingList{publicvoidTestingNewList(){vartestList=newList{newTesting{value1="Value1-1",value2="Value2-1",value3=3},newTesting{value1="Value1-2",value2

c# - 参数计数与 Invoke 不匹配?

下面的代码块导致错误:用户代码未处理TargetParameterCountException。参数计数不匹配。publicvoidAddListViewItem(string[]Data){if(InvokeRequired){Invoke(newAction(AddListViewItem),Data);}else{ListViewData.Items.Add(Data[0]).SubItems.AddRange(newstring[]{Data[1],Data[2],Data[3],});}}有什么想法吗? 最佳答案 错误是由

c# - 使用 ProjectItems.item

在使用NuGet时,我尝试使用powershell脚本将文件更改为嵌入式资源。我正在使用论坛上推荐的小型powershell脚本here.但是,我的脚本仅在文件不在文件夹中时才有效。param($installPath,$toolsPath,$package,$project)$item=$project.ProjectItems.Item("Folder\ReleaseNotes.txt")$item.Properties.Item("BuildAction").Value=[int]3即使文件位于文件夹中,我如何调整此行以查找文件:$item=$project.ProjectIte

c# - Visual Studio 包 : Settings the visibility of a custom Solution Explorer context menu item

我正在创建一个VisualStudio包(这是我的第一次),我的最终目标是为解决方案资源管理器创建一个上下文菜单项,该菜单项仅适用于某些文件类型。(我以为这会很常见,但没有找到任何像样的教程,所以如果你知道请告诉我)我遵循了一个简单的MSDN指南,首先在工具栏中创建了一个项目(我忘记了链接它的位置)并且效果很好。然后我找到了一种将其移至“解决方案资源管理器”上下文菜单的方法。这是通过操作.vsct文件并具有如下元素来实现的:这可能并不重要,但我正在尝试设置场景。现在,因为我只想显示某些文件类型的项目,所以我需要找到一种方法来在按下右键单击按钮时检查文件。缩短搜索时间,我foundthi

c# - 取消 Item_Open 导致崩溃

我正在使用c#和Microsoft.Interop库编写办公插件。当我通过将Cancel属性设置为false取消在Item_Open事件中打开约会时,它会导致Outlook因Appcrash而崩溃。当打开与与会者的定期系列约会时,会发生崩溃。这在2016年有点新。在2010年和2013年它曾经有效。有人知道如何在2016年实现这一目标吗?我试图找出我的代码中的问题,但即使是示例也找到了here(这在其他方面也适用于2016年)如果我只是在AppointmentItem打开事件中将取消设置为true就会中断。编辑:我刚刚发现这只有在我禁用缓存模式时才会发生编辑2:我刚刚发现这只发生在20

c# - 如果在单独的方法中调用,为什么 Parallel.Invoke 会快得多?

我执行了3次QuickSort-Algorithm并测量了对5000万个随机数进行排序的时间:顺序(大约需要14秒)使用Parallel.Invoke()作为排序算法的相同方法(耗时约12秒)使用Parallel.Invoke()在单独的方法中(耗时约7秒)所以我的问题是:如果在单独的方法中调用,为什么Parallel.Invoke()会快得多?在我的电脑上,示例3.的速度是示例2的两倍多。2。使用Parallel.Invoke()作为排序算法的相同方法publicclassParallelQuickSort{privateconstintThreshold=100;publicsta

c# - 使用 LINQ 创建字典并避免 "item with the same key has already been added"错误

我想在字典中找到一个键,如果找到则替换值,如果找不到则添加键/值。代码:publicclassMyObject{publicstringUniqueKey{get;set;}publicstringField1{get;set;}publicstringField2{get;set;}}LINQ解决方案(抛出已添加具有相同键的项目。):DictionaryobjectDict=csvEntries.ToDictionary(csvEntry=>csvEntry.ToMyObject().UniqueKey,csvEntry=>csvEntry.ToMyObject());ForEach

c# - 带有参数的 Dispatch.Invoke( new Action...)

以前我有Dispatcher.Invoke(newAction(()=>colorManager.Update()));从另一个线程更新显示到WPF。由于设计原因,我不得不更改程序,并且我必须将ColorImageFrame参数传递到我的ColorStreamManager.Update()方法中。正在关注this链接,我将调度程序修改为:Dispatcher.Invoke(newAction((p,v)=>p.Update(v)));它编译正常,但根本无法运行。VS2010说“参数计数不匹配。”在我的ColorStreamManager.Update()方法中我有RaisePrope

c# - MethodInfo.Invoke 性能问题

我正在从一个文件中读取和写入数据。文件中的数据可以是float、double、整数等。直到运行时才知道类型。我将文件中存储的数据类型称为Tin。数据从Tout类型的数组中读取或写入。这种类型在运行时也是未知的。代码序列是这样的。在已知Tin和Tout的Open方法中,我们可以为已知数据类型创建读写方法。Open(...){MethodInfoReadMethod=typeof(...)GetMethod("ReadGeneric").MakeGenericMethod(newType[]{typeof(Tin),typeof(Tout)}));}读写循环重复数百万次并依靠反射来调用适当