Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.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++ DLL,然后在C语言中有一个定时事件,只是把缓冲区的内容复制出来吗?这样,我就避免了明显发生的回调调用所造成的任何延迟。这是可行的,还是编组阻止了这种缓冲区访问?或者我必须进入不安全模式,如果我这样做或不这样做,有什么神奇的词语可以让它工作_C#_C++_Buffer_Sharing - Fatal编程技术网

C++/C#继续 问和明显地让人难堪,这是怎么想的?我能给C语言应用程序提供一个缓冲区到C++ DLL,然后在C语言中有一个定时事件,只是把缓冲区的内容复制出来吗?这样,我就避免了明显发生的回调调用所造成的任何延迟。这是可行的,还是编组阻止了这种缓冲区访问?或者我必须进入不安全模式,如果我这样做或不这样做,有什么神奇的词语可以让它工作

C++/C#继续 问和明显地让人难堪,这是怎么想的?我能给C语言应用程序提供一个缓冲区到C++ DLL,然后在C语言中有一个定时事件,只是把缓冲区的内容复制出来吗?这样,我就避免了明显发生的回调调用所造成的任何延迟。这是可行的,还是编组阻止了这种缓冲区访问?或者我必须进入不安全模式,如果我这样做或不这样做,有什么神奇的词语可以让它工作,c#,c++,buffer,sharing,C#,C++,Buffer,Sharing,从另一个问题中总结: 我有一个用C++编写的驱动程序和一个用C语言编写的应用程序。李> 我需要以预览方式从驱动程序获取数据 C++应用程序与C++ DLL交互很好;C#应用程序在复制数据时有很大的延迟 延迟似乎不是由C#端的发布/调试差异引起的 我需要避开耽搁。这项拟议的缓冲区计划是否可行?C应用程序是否会从一个由C++ DLL写入的缓冲区消耗,或者我需要做其他的事情吗? :是的,你可以从C到C++传递一个缓冲区(例如字节[])。我被你原来的问题难住了。我使用我自己的C++代码中的回调到C语

从另一个问题中总结:

    我有一个用C++编写的驱动程序和一个用C语言编写的应用程序。李>
  • 我需要以预览方式从驱动程序获取数据
  • C++应用程序与C++ DLL交互很好;C#应用程序在复制数据时有很大的延迟
  • 延迟似乎不是由C#端的发布/调试差异引起的
  • 我需要避开耽搁。这项拟议的缓冲区计划是否可行?C应用程序是否会从一个由C++ DLL写入的缓冲区消耗,或者我需要做其他的事情吗?
    <>:是的,你可以从C到C++传递一个缓冲区(例如字节[])。我被你原来的问题难住了。我使用我自己的C++代码中的回调到C语言,我从来没有注意到性能问题——尽管我试图在循环的每一次迭代中不做回调,因为我确实期望一些封送开销。

    < P>主要原因是PInvoke很慢,用什么来解决这个问题。
  • 使用托管代码中非托管代码的数据
    那么您就有问题了,除非您将其作为字节指针(不安全代码)使用,或者您获取了一个副本(封送处理可以为您提供)。很可能是后者让你慢下来了(但不要猜测基准)

  • 在非托管代码中使用托管代码中的数据
    这很简单,您只需确保在非托管代码使用关联缓冲区时锁定该缓冲区

  • 听起来你想做一件事。您是否对延迟进行了基准测试?如果是复制(缓冲区有多大是出于兴趣),那么您能否更改您的c#代码以作为字节指针(和长度)与缓冲区交互?

    如果您可以访问C++/CLI,您通常可以更清晰地解决这一问题,因为不受管理的代码部分(使用原始缓冲区)更容易实现,而受管理的部分只需使用它的子部分(仅复制绝对需要的内容)

    ,正如我在另一个线程中所说,看来延迟完全是在C++侧,所以我的末尾没有大量的问题来解决这个问题。

    考虑在原始线程中继续讨论这个问题。没有人查看原始线程:(或抱歉,35人)。