Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 线程提升事件被处理程序阻止? 我正在从一个C ++应用程序中处理一个从托管C++中引发的事件。 C++的事件处理程序是在从C++(?)中提出来的同一线程上执行的吗? 换句话说,是C++中的事件封锁,直到完全由C++处理?< /P> < P>是的。要绕过长度限制的额外文本:)_C#_C++_Event Handling_Multithreading_Blocking - Fatal编程技术网

C# 线程提升事件被处理程序阻止? 我正在从一个C ++应用程序中处理一个从托管C++中引发的事件。 C++的事件处理程序是在从C++(?)中提出来的同一线程上执行的吗? 换句话说,是C++中的事件封锁,直到完全由C++处理?< /P> < P>是的。要绕过长度限制的额外文本:)

C# 线程提升事件被处理程序阻止? 我正在从一个C ++应用程序中处理一个从托管C++中引发的事件。 C++的事件处理程序是在从C++(?)中提出来的同一线程上执行的吗? 换句话说,是C++中的事件封锁,直到完全由C++处理?< /P> < P>是的。要绕过长度限制的额外文本:),c#,c++,event-handling,multithreading,blocking,C#,C++,Event Handling,Multithreading,Blocking,我必须通过“我是人类”的测试>P>事件处理程序调用是同步的,因为代码既有托管C++又有C语言,它都是“.NET”.< 如果希望事件处理程序异步运行,只需在C端附加一个处理程序,该处理程序可以启动另一个线程,将工作线程放入线程池,或者调用另一个方法,通过委托使用异步处理工作。然后处理程序将快速返回,允许C#work在后台执行,而MC++代码可以继续调用事件的其他侦听器 确保如果您确实执行了异步处理事件的代码,C++代码就不会期望事件参数中的数据被处理程序修改。如果使用类似的东西,就会出现这种情况。

我必须通过“我是人类”的测试>P>事件处理程序调用是同步的,因为代码既有托管C++又有C语言,它都是“.NET”.< 如果希望事件处理程序异步运行,只需在C端附加一个处理程序,该处理程序可以启动另一个
线程
,将工作线程放入
线程池
,或者调用另一个方法,通过
委托
使用异步处理工作。然后处理程序将快速返回,允许C#work在后台执行,而MC++代码可以继续调用事件的其他侦听器


确保如果您确实执行了异步处理事件的代码,C++代码就不会期望事件参数中的数据被处理程序修改。如果使用类似的东西,就会出现这种情况。

如果我在C#?中提出和处理这两个问题,这也适用于纯托管DLL。是的,这一切都是一样的,不管语言如何。我不确定如果这是一个非托管事件会是什么样子。