cpprest pplx :: task ::然后在清理时导致单声道挂断

时间:2019-03-14 03:43:07

标签: callback mono unmanaged cpprest-sdk concurrency-runtime

我使用cpprest拥有一个非托管dll,并释放了一个非托管函数“ Load”。该函数接受回调,并在请求完成后异步调用该回调。

以下是C ++代码int dll:

typedef void (__stdcall* MyCallback)();
static MyCallback g_cb;
DLL_API void Load(MyCallback cb) {
  g_cb = cb; 
  httpClient.request(req).then([](){
    g_cb();
  });
}

然后,我从单位创建一个委托给函数“ Load”。以下是统一的代码:

private delegate void LoadCallback();
[DllImport(strDllName, CallingConvention = CallingConvention.Cdecl)]
private static extern void Load(LoadCallback onLoadResult);

void Start() {
  m_onLoadConfig = new LoadCallback(OnLoadConfig);
  Load(m_onLoadConfig);
}

private LoadCallback m_onLoadConfig;
private void OnLoadConfig() {/*Some output*/}

运行后,调用了该委托,输出是我想要的,一切似乎都很好。

但是当我关闭应用程序时,它挂在

mono_win32_msg_wait_for_multiple_objects_ex

我认为这是单声道的错误?但是有什么解决方法?

0 个答案:

没有答案