小编Jay*_*nki的帖子

事件触发时触发提示

我的整个项目使用(Bluebird)Promises,但是有一个使用EventEmitter的特定库.

我希望实现以下目标:

Promise.on('connect', function() {
    x.doSomething();
}).then(function() {
    return new Promise(function(resolve) {
        y.doAction(resolve); // this will result in `eventB` getting emitted
    });
}).on('eventB', function() {
    z.handleEventB();
}).then(function() {
    z.doSomethingElse();
});
Run Code Online (Sandbox Code Playgroud)

在Promises链的中间读到了EventEmitter的答案.这为我提供了一种执行'connect'事件回调的方法.这是我到目前为止的地方

var p = new Promise(function(resolve) {
    emitter.on('connect', resolve);
});
p.on = function() {
    emitter.on.apply(emitter, arguments);
    return p;
};
p.on('connect', function() {
    x.doSomething();
}).then(function() {
    return new Promise(function(resolve) {
        y.doAction(resolve); // this will result in eventB getting emitted
    });
});
Run Code Online (Sandbox Code Playgroud)

现在如何为'eventB'进一步链接?

node.js promise bluebird

17
推荐指数
1
解决办法
1万
查看次数

只需停止异步方法即可

我有这种播放声音的方法,当用户点击屏幕时,我希望它在用户再次点击屏幕时停止播放.但问题是"DoSomething()"方法不会停止,它会一直持续到完成.

bool keepdoing = true;

private async void ScreenTap(object sender, System.Windows.Input.GestureEventArgs e)
    {
        keepdoing = !keepdoing;
        if (!playing) { DoSomething(); }
    }

private async void DoSomething() 
    {
        playing = true;
        for (int i = 0; keepdoing ; count++)
        {
            await doingsomething(text);
        }
        playing = false;
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.
谢谢 :)

c# windows-phone async-await

11
推荐指数
2
解决办法
2万
查看次数

使用Java应用程序作为特定文件类型的默认程序?

我使用Java创建了一个文本编辑器,并使用Netbeans将其打包在一个jar文件中.现在我创建了一个文本文件,扩展名为".text".我在Windows 7上,所以使用它的属性窗口我将默认的打开程序更改为我的文本编辑器的jar文件.

现在,当我双击".text"扩展名的文件时,windows会显示一个对话框,说"{file name}不是有效的win32应用程序".

请帮帮我..

谢谢.

java windows file-association

9
推荐指数
1
解决办法
1万
查看次数

通过本地网络在Genymotion上运行应用程序

我有两台机器在同一个网络上运行.我用一台机器进行开发,另一台有各种android模拟器.

我需要在开发电脑上运行在另一台电脑上的模拟器上运行应用程序.像Android工作室中的run命令一样应该让在Genymotion中安装的应用程序在另一台PC上运行.

可能?有任何想法吗 ?

android android-studio genymotion

6
推荐指数
1
解决办法
2407
查看次数

Qt + OpenCV - 在QLabel上显示图像

我正试图从相机捕捉实时视图,并重定向它以显示在QLabel上.但只有一半的观点出现(见下文): 截图

左侧窗口使用cv :: imshow()显示,完美运行.我在另一个线程中捕获Mat,然后以Qimage作为参数发出信号,然后将图像设置为插槽中的QLabel.

这是代码:

while(true){
    cam >> mat;
    cv::imshow("name",mat);
    emit send_UIupdate(mat2qimage(mat));
}
Run Code Online (Sandbox Code Playgroud)

并在插槽中将图像设置为Qlabel:

void Dialog::updateUI(const QImage &img){
    label->setPixmap(QPixmap::fromImage(img));
}
Run Code Online (Sandbox Code Playgroud)

使用下面的方法将Mat转换为QImage:

QImage camera::mat2qimage(const cv::Mat& mat) {
    cv::Mat rgb;
    cv::cvtColor(mat, rgb, CV_BGR2RGB);
    return QImage((const unsigned char*)(rgb.data), rgb.cols, rgb.rows, QImage::Format_RGB888);
}
Run Code Online (Sandbox Code Playgroud)

有什么建议,解决这个问题??

qt multithreading opencv

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

C++ 的 Epub 库

C++ 中有没有用于创建 Epub 文件的库,我需要将它与 Qt 一起使用。

我的程序可以导出 html 和 css,但我不知道如何将其转换为 Epub。

c++ qt epub

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

NodePort是否适用于Azure容器服务(Kubernetes)

我为Kubernetes仪表板提供了以下服务

Name:               kubernetes-dashboard
Namespace:          kube-system
Labels:             k8s-app=kubernetes-dashboard
                    kubernetes.io/cluster-service=true
Annotations:        kubectl.kubernetes.io/last-applied-configuration={"kind":"Service","apiVersion":"v1","metadata":{"name":"kubernetes-dashboard","namespace":"kube-system","creationTimestamp":null,"labels":{"k8s-app":"k...
Selector:           k8s-app=kubernetes-dashboard
Type:               NodePort
IP:                 10.0.106.144
Port:               <unset> 80/TCP
NodePort:           <unset> 30177/TCP
Endpoints:          10.244.0.11:9090
Session Affinity:   None
Events:             <none>
Run Code Online (Sandbox Code Playgroud)

根据文件,我跑了

az acs kubernetes browse
Run Code Online (Sandbox Code Playgroud)

它适用于http:// localhost:8001/ui

但是我也希望在集群外部访问它.describe输出表明它是在端口30177上使用NodePort公开的.

但是我无法访问它 http://<any node IP>:30177

azure kubernetes azure-container-service

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

OpenCV多线程错误[使用Qt]

直到现在我已经学到了一件事,我在用OpenCV做错了,Qt在错误中没有任何作用

我试图在不同的线程中运行两个方法,但它给了我错误:

[xcb]出队时队列中的未知请求
[xcb]很可能这是一个多线程客户端,并且没有调用
XInitThreads [xcb]正在中止,对不起.
Blurring_Images:../../ src/xcb_io.c:178:dequeue_pending_request:断言`!xcb_xlib_unknown_req_in_deq'失败.
该计划意外完成.


这是我的代码:

void Dialog::blurImages(int b)
{
    QtConcurrent::run(this,&Dialog::homogenour_blur,b);
    QtConcurrent::run(this,&Dialog::gaussianBlur,b);
}

void Dialog::homogenour_blur(int b)
{
    cv::blur(img,img1,cv::Size(b,b));
    showImage("Homogenous Blur",img1);
}

void Dialog::gaussianBlur(int b)
{
    cv::GaussianBlur(img,img2,cv::Size(b,b),b);
    showImage("Gaussian Blur",img2);
}
Run Code Online (Sandbox Code Playgroud)

如果我注释掉一个电话(如下所示),它运行正常

void Dialog::blurImages(int b)
{
    QtConcurrent::run(this,&Dialog::homogenour_blur,b);
    //QtConcurrent::run(this,&Dialog::gaussianBlur,b);
}
Run Code Online (Sandbox Code Playgroud)

这真是很烦人,请帮忙!

编辑: 我没有调用showImage(),而是将其替换为真正的OpenCV调用(见下文):

void Dialog::homogenour_blur(int b)
{
    cv::blur(img,img1,cv::Size(b,b));
    //showImage("Homogenous Blur",img1);
    cv::imshow("Homogenous Blur",img1);
}

void Dialog::gaussianBlur(int b)
{
    cv::GaussianBlur(img,img2,cv::Size(b,b),b);
    //showImage("Gaussian Blur",img2);
    cv::imshow("Gaussian Blur",img2);
}
Run Code Online (Sandbox Code Playgroud)

现在我得到的错误是:

原始映像:X服务器上的致命IO错误11(资源暂时不可用):0.
原始映像:X服务器上的致命IO错误0(成功):0.
致命错误:破坏后访问全局静态'KGlobalSettings*s_self()'.定义为../../kdeui/kernel/kglobalsettings.cpp:190
该程序意外完成.

qt multithreading opencv

0
推荐指数
1
解决办法
5256
查看次数