小编Jak*_*uhy的帖子

来自 C++ 线程的节点 FFI 回调

我今天遇到了一个令人沮丧的问题。我正在node-ffi我的电子应用程序中运行 C++ 代码。总的来说,我有很好的经验,但我今天开始使用多线程并遇到了一些困难。我传入的回调ffi是从线程调用的。然而,当我结束循环并尝试将join循环线程连接到主线程时,它完全冻结了电子应用程序。

完整免责声明:我对 C++ 还很陌生,并且希望对我的代码提供任何反馈以改进它,特别是您认为我应该注意的任何危险信号。

以下两个存储库演示了我遇到的错误:
Electron Project - https://github.com/JakeDluhy/threading-test
C++ DLL - https://github.com/JakeDluhy/ThreadedDll

以下是我正在做的事情的概述:
在我的 dll 中,我公开了开始/结束会话和开始/停止流式传输的函数。它们调用类实例的引用来实际实现功能。本质上,它是更强大的 C++ 类的 C 包装器。

// ThreadedDll.h
#pragma once

#ifdef __cplusplus
extern "C" {
#endif

#ifdef THREADEDDLL_EXPORTS
#define THREADEDDLL_API __declspec(dllexport)
#else
#define THREADEDDLL_API __declspec(dllimport)
#endif
    THREADEDDLL_API void beginSession(void(*frameReadyCB)());
    THREADEDDLL_API void endSession();

    THREADEDDLL_API void startStreaming();
    THREADEDDLL_API void stopStreaming();
#ifdef __cplusplus
}
#endif

// ThreadedDll.cpp
#include "ThreadedDll.h"
#include "Threader.h"

static Threader *threader = NULL;

void beginSession(void(*frameReadyCB)())
{
    threader …
Run Code Online (Sandbox Code Playgroud)

javascript c++ multithreading node-ffi electron

4
推荐指数
1
解决办法
2474
查看次数

在rxjs中实现fromSubscriber

我今天遇到了一个有趣的问题.我正在开发一个我们有文件上传的应用程序,我们想要实现一个进度条.该应用程序使用React/Redux/Redux-Observable编写.我想发送上传进度的动作.这是我为实现它所做的:

withProgress(method, url, body = {}, headers = {}) {
    const progressSubscriber = Subscriber.create();

    return {
        Subscriber: progressSubscriber,
        Request:    this.ajax({ url, method, body, headers, progressSubscriber }),
    };
}
Run Code Online (Sandbox Code Playgroud)

我有一个类用于制作我的所有ajax请求.使用传入的参数this.ajax调用Observable.ajax.

export const blobStorageUploadEpic = (action$) => {
    return action$.ofType(a.BLOB_STORAGE_UPLOAD)
    .mergeMap(({ payload }) => {
        const { url, valetKey, blobId, blobData, contentType } = payload;

        const { Subscriber, Request } = RxAjax.withProgress('PUT', `${url}?${valetKey}`, blobData, {
            'x-ms-blob-type': 'BlockBlob',
            'Content-Type':   contentType,
        });

        const requestObservable = Request
        .map(() => ({ type: …
Run Code Online (Sandbox Code Playgroud)

javascript rxjs rxjs5 redux-observable

3
推荐指数
1
解决办法
593
查看次数

Ember Integration:触发根元素上的click事件

我正在编写一些ember集成测试,我在测试组件上的所有内容时遇到了一些问题.例如,我有一个看起来像的组件

// my-component.js
export default Ember.Component.extend({
  click() {
    console.log('here');
  }
});
Run Code Online (Sandbox Code Playgroud)

而且看起来像这样的测试

// my-component-test.js
describeComponent(
  'my-component',
  'Integration: MyComponentComponent',
  {
    integration: true
  },
  function() {
    describe('interacting', function() {
      beforeEach(function() {
        this.render(hbs`
          {{my-component}}
        `);
      });

      it('registers the click', function() {
        this.$().click();
      });
    });
  }
);
Run Code Online (Sandbox Code Playgroud)

在实际情况中,我显然想测试组件在该单击上做了什么,但不幸的是这个触发器不起作用(没有得到日志).任何人都有关于如何触发根元素上的click事件的答案?

javascript jquery ember.js

2
推荐指数
1
解决办法
715
查看次数