为什么VS2010总是在MethodInfo.Invoke的异常时中断?
我在MethodInfo.invoke(O,null)和VS2010上进行了尝试/捕获,将永远不会破坏异常,但不幸的是,调试器继续在调用方法中破裂.该方法是静态的,我已经安装了电话开发人员Beta. 这是错误还是开发人员错误? thx !! 解决方案 是的,如果没有检查每个例外检查框,则仅在这些调用异常上破裂.所有其他例外都很好. 好消息是,一个匿名天才给了我一个工作: delegate void VoidTest(); VoidTest test = (VoidTest)Delegate.CreateDelegate(typeof(VoidTest), o, method.Name); test(); 这些例外确实像预期的那样降落在例外处理程序中! =) 其他解决方案 您确定"断开第一次偶然异常"是禁用的吗?转到调试 - >例外,并确保所有内容都关闭.
0 2023-12-08
编程技术问答社区
从C#应用程序调用ASP.net网络服务
我有一个问题.如何调用Web服务并从C#桌面应用程序中获取结果.我正在制作桌面应用程序,希望它能够连接到我的在线ASP.NET Web服务.怎么可能? 解决方案 在解决方案资源管理器中,右键单击您的项目节点,然后选择添加服务参考. 输入服务WSDL所在的网址.这通常是服务本身的URL. 这将在您的项目中的新服务参考文件夹中生成强大的代理类. 在您的桌面应用中写代码以实例化代理类并在其中调用方法.其余的工作就像魔术. :) ab kolan也是正确的,但是添加 Web 参考使用旧式Web服务框架,而添加服务参考文献使用新的WCF堆栈.重要说明:不是要求服务本身使用WCF供您在客户端使用WCF.客户端上的WCF通常是任何服务的最佳选择,只要您可以依赖.NET 3.0及以上. 其他解决方案 在桌面应用程序参考中,将Web参考添加到Web服务中.这样做将为Web服务生成一个称为Reference.cs的Web服务的代理 您可以使用代理访问Web服务. 其他解决方
2 2023-12-02
编程技术问答社区
动态调用WCF服务
我已经创建了ASP.NET应用程序,并向它添加了简单的WCF服务. ASP.NET应用程序是WCF服务的主机.该服务正在运行. 服务看起来如下: [ServiceContract] public interface IService1 { [OperationContract] string DoWork(string text); } public class Service1 : IService1 { public string DoWork(string text) { return text.ToUpper(); } } 客户端是控制台应用程序,该应用程序应动态调用WCF服务.我使用以下代码: WSHttpBinding binding = new WSHttpBinding(SecurityMode.None); IChannelFactory factory =
0 2023-11-27
编程技术问答社区
如何让PowerShell等待Invoke-Item完成?
我如何让PowerShell等到Invoke-item呼叫完成?我正在调用一个不可执行的项目,所以我需要使用Invoke-Item打开它. 解决方案 不幸的是,您不能直接使用Invoke-Item命令.此命令让我们具有一个无效的返回类型,并且没有允许等待的选项. 最佳选择是定义您自己的功能,该功能包裹Process api so function Invoke-Command() { param ( [string]$program = $(throw "Please specify a program" ), [string]$argumentString = "", [switch]$waitForExit ) $psi = new-object "Diagnostics.ProcessStartInfo" $psi.FileName = $program $psi.Argumen
4 2023-11-26
编程技术问答社区
我们如何从Microsoft Office插件中调用Invoke(Delegate)方法?
问题:我们如何使用 indoke(...) Microsoft Office 2010-2016 vsto vsto 项目.或者,VSTO项目是否有任何工作,替代方案等? 背景:我正在尝试实现第三方的源代码 Windows表单应用于我的 Microsoft Office VSTO加载项项目.第三方供应商为用户提供了一个带有源代码的Windows表单项目的示例/示例,并要求其用户模仿其其他项目(WPF,Office Solutions等). . 我能够实现其Windows表单示例应用的所有部分,但我的VS2019 VS2019未识别的代码行除外: Invoke(new IsActivatedDelegate(CheckIfActivated)); 备注:delegate void IsActivatedDelegate();是在其样本的Form1.cs文件中声明的委托和checkifativivivated()是在同一Form1.cs文件中声明的方法. 现
0 2023-11-25
编程技术问答社区
即使使用调用方法,也会得到 "跨线程操作无效 "的提示
我在这里获得"跨线程操作无效": if ( vlc.State == VlcPlayerControlState.PLAYING ) { if ( vlc.InvokeRequired ) { vlc.Invoke( new MediaPlayerNoParameterDelegate( vlc.Stop ) ); } else { vlc.Stop(); // debugger points here } } 调试表明,VLC不需要调用.但是访问此访问的线程与创建的线程不同. 我正在使用libvlc.net包装器播放声音,但是问题不应该存在. 我如何摆脱这个例外? 我使用的不是螺纹. 谢谢! 解决方案 听起来这是L
0 2023-11-25
编程技术问答社区
vb.net: listbox.items.add()在同一类中抛出异常
我什至不确定我足够理解这种情况,可以提出一个适当的标题.我来自对VB6的适度理解,不得不攀登VB 2010的陡峭学习曲线. 我正在尝试创建一个将与我的企业iPhone应用程序通信的多客户服务器程序.我找到了一个相对简单的示例,要建立在这里: http://www.strokenine.com/blog/?p = 218 .我已经能够对代码进行足够的修改以使其与我的应用程序一起使用,但是有一个小故障:即使在表单的类中调用了该方法,我也无法访问表单上的控件以添加项目. (我也在原始代码上尝试了此操作,并且它做同样的事情.我不知道作者如何设法使它工作.) 这是所讨论的代码段: Public Class Server 'The form with the controls is on/in this class. Dim clients As New Hashtable 'new database (hashtable) to hold the clients Su
0 2023-11-23
编程技术问答社区
什么是调用?
什么是方法调用,control.invoke? 编程中通常在调用什么 示例: MethodInvoker getValues = new MethodInvoker(delegate() { checkbox1Checked = checkbox1.Checked; textBox6Text = textBox6.Text; textBox7Text = textBox7.Text; textBox3Text = textBox3.Text; textBox1Text = textBox1.Text; textBox4Text = textBox4.Text; richTextBox1Text = richTextBox1.Text; textBox5Text = textBox5.Text; }); if (this.InvokeRequired) { this.Invoke(getValues
0 2023-11-20
编程技术问答社区
在Windows窗体中调用
有人是否有指向使用Invoke的学习资源的链接? 我正在尝试学习,但是我见过的所有例子都无法适应我的目的. 解决方案 您是否尝试过msdn control.invoke.invoke 我刚刚写了一些Winform应用程序来演示Control.Invoke. 创建表单后,在背景线程上启动一些工作.完成此工作后,更新标签中的状态. public Form1() { InitializeComponent(); //Do some work on a new thread Thread backgroundThread = new Thread(BackgroundWork); backgroundThread.Start(); } private void BackgroundWork() { int counter = 0; while (counter
0 2023-11-20
编程技术问答社区
执行在不同的虚拟环境/VENV下构建的Python脚本?
如果我想实现的目标不是Pythonic,我深表歉意 - 我最近搬到了语言中. 我有一个像这样构成的项目目录: root --proj1 ----venv ----main.py --proj2 ----venv ----main.py proj1和proj2在自己的虚拟环境下运行.我试图从proj1/main.py调用proj2/main.py,同时在其自己的VENV下执行ProJ2/Main.py.我尝试了: import subprocess s2_out = subprocess.check_output([sys.executable, r"..\proj2\__main__.py", "arg"]) 这成功地调用了,但是我得到了各种未发现的例外等.我猜这就是原因. 请让我知道是否有更好的方法! 解决方案 您可以做到这一点: import subprocess subprocess.call(["python_interpreter
8 2023-11-19
编程技术问答社区
用Begin Invoke/Invoke向树状视图添加节点
我一直在完成我的第一个项目,并在这些人那里得到了很大的宝贵帮助,但是现在我又陷入了困境. 下面的子用于在添加新数据后,将treenodes添加到树视图中,不包括某些filetypes/name: Sub DirSearch(ByVal strDir As String, ByVal strPattern As String, ByVal tvParent As TreeNodeCollection) Dim f As String Dim e As String Dim tvNode As TreeNode Dim ext() As String = strPattern.Split("|"c) Try For Each d In Directory.GetDirectories(strDir) If (UCase(IO.Path.GetFileName(d)) "BACKUP") And (UCase(
0 2023-11-15
编程技术问答社区
通过反射将派生类作为参数调用成员
我试图将类" cmyClass"的方法称为" myMethod".该方法具有类型" CBASECLESS"的参数,我正在传递一个类型" CderivedClass"的对象. Class CBaseClass Public m_AMember As String Sub MethodOne() // DoSomething End Sub End Class Class CDerivedClass Inherits CBaseClass Public m_MyMember As Integer Sub MethodTwo() // DoSomething End Sub End Class Class CMyClass Sub MyMethod(ByVal obj As CBaseClass) // DoSomething End Sub End Class
0 2023-11-15
编程技术问答社区
VB.net在一个控件中调用一个属性变化
许多如何调用方法的示例,但是如何更改简单的属性? 为了演示,这是一组非常简单的代码,应该有所帮助.假设我需要从儿童表格中设置可见属性,因此需要调用它: Friend Sub activateItem(ByVal myItem As PictureBox) If myItem.InvokeRequired = True Then ???? Else myItem.Visible = True End If End Sub 谢谢 解决方案 如果您使用的是VB.NET 2010,则可以使用lambda表达式: If myItem.InvokeRequired Then myItem.Invoke(Sub() myItem.Visible = True) 在您的特殊情况下,您也可以致电myItem.Invoke(myItem.Show).
0 2023-11-14
编程技术问答社区
在创建窗口句柄之前,VB.NET不能在控件上调用Invoke,但句柄是创建的。
这是我的情况,有两个类,我的主要形式形式1: class1:有一个方法dosomethingandcall(回调),它创建一个新线程 class2:具有动态创建的控件,该按钮可以触发class1.dosomethingandcall(newCallback) 在代码中看起来像这样(它从class2.button_click开始): Class Class1 public shared sub doSomethingAndCallAsync(state as object) Console.WriteLine(Form1.InvokeRequired) 'output: false Console.WriteLine(Form1.IsHandleCreated) 'output: false Form1.Invoke(state.callback) 'throws System.InvalidOperationException end s
10 2023-11-14
编程技术问答社区
VB.net、Invoke、delegates和threading。不知道如何跨类使用它们。
长话短说,我有时间试图弄清楚如何使用Invoke和/或委托在使用线程时从单独的类中更新用户形式.我很确定这对有更多经验的人来说是愚蠢而明显的.我知道可能需要一个代表,但是我所有的努力似乎只有在从主线程中调用时才起作用.我已经在互联网上寻找半天,而且我没有得到一些东西. 以下是一些伪代码: 此选项有效: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim t1 As New Threading.Thread(AddressOf Count) t1.IsBackground = True t1.Start(100) End Sub Private Sub Count(ByVal Max As Object) If TypeOf Ma
2 2023-11-14
编程技术问答社区
VB.NET 对通用的跨线程操作有两种不同的方法,哪一种更好?
vb.net 2010,.net 4 你好, 我最近阅读了有关使用SynchronizationContext对象来控制某些代码的执行线程.我一直在使用通用子例程来处理(可能)跨线程调用,以供更新使用Invoke的UI控件.我是业余爱好者,很难理解任何特定方法的利弊.我正在寻找一些有关哪种方法可能更可取的见解以及为什么. 更新:此问题部分是通过诸如 msdn页面Control.InvokeRequired . 一个更好的解决方案是使用 SynchronizationContext返回 SynchronizationContext而不是 跨线程的控制. 以及关于为什么我环顾四周的大多数问题的原因,关于此类型问题的大多数答案,因此建议Invoke方法而不提及此方法. 方法1: Public Sub InvokeControl(Of T As Control)(ByVal Control As T, ByVal Action As Action(Of
2 2023-11-14
编程技术问答社区
多线程应用程序的调用方法?
我的应用程序中有一个错误,与在这里这个人遇到了同一问题.我的应用程序是多线程,其中工人线程正在更新UI上的波形图.我相信这就是我的问题,以及为什么在运行应用程序时至少一个soveformgraph对象中的一个大红色x.从阅读和研究中,我需要使用一种调用或开始访问方法?有人可以更好地解释并提供与我的代码相关的示例代码吗?到目前为止,我发现的样本仍然使我对如何做或需要做的事情感到羞耻.谢谢您的帮助. 此代码在SWSCOPEONOFF点击事件,主线程. thread2 = New System.Threading.Thread(AddressOf dataAcquiring) thread2.Start() 此代码在dataAcquiring sub 中 Public Sub dataAcquiring() 'While Scope switch is on, stream each Ai channel's data continuously to i
0 2023-11-14
编程技术问答社区
使用VB.NET通过字符串名称动态调用属性
我目前正在研究一个代码部分的项目: Select Case oReader.Name Case "NameExample1" Me.Elements.NameExample1.Value = oReader.ReadString ' ... Case "NameExampleN" Me.Elements.NameExampleN.Value = oReader.ReadString ' ... End Select 它继续了一段时间.代码显然是冗长的,感觉可以改进.有什么方法可以动态调用vb.net中的属性,以便可以做到这样的事情: Dim sReadString As String = oReader.ReadString Me.Elements.InvokeProperty(sReadString).Value = sReadString 解决方案 其他人的回答非常合理,但以防万一这
2 2023-11-14
编程技术问答社区
VB.NET的代理和调用--谁能给我解释一下这些?
我是线程世界的新手,但是我正在研究的应用程序的一些方面要求我使用背景工作人员控件来防止UI在执行某些文件操作时冻结. 我要做的是从后台工作人员内更新几个表单标签.在我很快发现我无法访问在同一线程内创建的控件之前,从未使用过此问题,因此,经过一些研究,我实施了以下代码,这些代码似乎使一切都起作用: Private Delegate Sub DelegateUpdateStatus(ByVal statusText As String, ByRef currentFile As String) Private Sub UpdateStatus(ByVal statusText As String, ByVal currentFile As String) If InvokeRequired Then Invoke(Sub() LblStatus.Text = statusText) Invoke(Sub() LblCurrentFile
0 2023-11-14
编程技术问答社区
Control.Invoke被挂起
我已经看到了有关控制问题的大量帖子.悬挂应用程序,但它们似乎仅限于在.NET 1.1上运行的应用程序.我还看到了要使用的建议,而是我尝试过的,但无济于事. .begininvoke不会悬挂,但也没有称呼代表.我主要关心的是我已经使用了多年的援助,没有任何问题,并且在该领域中使用了广泛使用它,我担心这个问题会在那里浮出水面.据我所知,在工作代码和失败的代码之间,我的做法并没有什么不同.我写了一个简单的代码,以复制问题(全部4.0 VS2010): Public Class Form1 Private WithEvents sat As TestInvoke Private Delegate Sub doTheUpdateDelegate(ByVal message As String) Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
8 2023-11-14
编程技术问答社区