如何使用p/invoke终止从c#调用的c++函数
本文关键字:调用 c++ 函数 终止 何使用 invoke | 更新日期: 2023-09-27 18:06:51
我正在使用p/invoke从c#调用一个c++函数,这个函数有一个无限循环(捕获帧到文件),当c#中发生事件时应该打破。
我如何打破循环(终止该函数)?
我尝试在c#的线程中运行这个函数,并在需要终止时中止该线程。但是abort函数不工作。
Thread thread = new Thread(myMethod);
thread.Start();
// to terminate the function
thread.Abort(); //didn't respond
可能最安全的方法是做两件事:
- 暴露另一个名为(例如)
StopRecording
的函数,该函数在本机代码中设置全局变量 - 在main函数中,在每次循环迭代开始时检查全局变量的值,以查看
StopRecording
是否已被调用(如果是,则跳出循环)
这使得它可以自然终止而不需要任何强制终止。