小编Joh*_*ohn的帖子

当另一个线程可以设置它时(最多一次),是否可以读取共享布尔标志而不锁定它?

我希望我的线程更优雅地关闭,所以我试图实现一个简单的信令机制.我不认为我想要一个完全事件驱动的线程,所以我有一个工人用一个方法来使用一个关键部分Monitor(相当于一个C#lock我相信)来优雅地停止它:

DrawingThread.h

class DrawingThread {
    bool stopRequested;
    Runtime::Monitor CSMonitor;
    CPInfo *pPInfo;
    //More..
}
Run Code Online (Sandbox Code Playgroud)

DrawingThread.cpp

void DrawingThread::Run() {
    if (!stopRequested)
        //Time consuming call#1
    if (!stopRequested) {
        CSMonitor.Enter();
        pPInfo = new CPInfo(/**/);
        //Not time consuming but pPInfo must either be null or constructed. 
        CSMonitor.Exit();
    }
    if (!stopRequested) {
        pPInfo->foobar(/**/);//Time consuming and can be signalled
    }
    if (!stopRequested) {
        //One more optional but time consuming call.
    }
}


void DrawingThread::RequestStop() {
    CSMonitor.Enter();
    stopRequested = true;
    if (pPInfo) pPInfo->RequestStop();
    CSMonitor.Exit(); …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading boolean locking monitor

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

如何在Android中发出哔哔声?

我想我的应用程序会发出特定频率和持续时间的哔声.在相当于这个应用程序的窗口(用c#编写)中,我使用了一个带有该函数的c ++ dll

beep(frequency, duration); 
Run Code Online (Sandbox Code Playgroud)

这在android中是一样的吗?或者至少如何将我的c ++ dll放入项目中?

我不想使用预先构建的mp3或系统声音,因为我想让用户选择频率和持续时间.

android

27
推荐指数
3
解决办法
4万
查看次数

Android Marketplace的入会/会员费用是多少?

我不记得这些信息可以立即访问.

我记得这是25英镑的一次性费用.

上个月我读了

在Google的Android应用程序市场中,不需要预先批准,但需要注册才能进行分发.开发人员需要使用Google帐户注册为开发人员(每年25美元),并通过已发布的网站销售他们的产品.配置银行信息后,可以出售NonDfree应用程序.

来源:bada_development_guide_for_android_developer_modified_final.pdf pp5,日期10/7/2011

而bada是免费的.我怀疑我正在阅读旧信息,上次我检查时卖家注册的费用为1英镑.但我认为Android不会花费25英镑/年,这只是三星推出他们自己的替代操作系统.

android google-play

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

你能内联静态成员函数吗?

我有一个静态成员函数,它只是我的语法糖,我希望它的主体出现在通过参数传递给它的运动的位置.将

inline static foo(int a) {return a & 0x00000040;}
Run Code Online (Sandbox Code Playgroud)

如果inline不存在的话就像内联一样内联static

c++ static-methods inline

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

我的std :: vector应该包含指针还是结构?

我知道持有指针会产生额外的解除引用操作的开销,但它会省去包括(可能很大的)包含我的struct定义的头文件.

但是,我的偏好取决于拥有std::vector<myStruct> *ptr2Vect会员的优势.即,不必在每个元素上调用delete.这有多大的性能优势?矢量真的可以在堆栈上分配对象吗?我对模板类相当新,并想知道动态数组是否有可能在堆栈上以及以什么价格进行扩展?

_ 编辑 _

我无法理解默认的复制构造函数和operator =成员,并试图将事物保持为简单的结构.我没有明确定义实现,因此担心将vector元素设置为对象而不是指针将在赋值时创建临时对象,这将被破坏并因此破坏其副本.

_ 编辑 _

很抱歉延迟提供相关信息(我对代码很害羞).

我想调用push_back(newObj).现在,如果我不使用指针,我有一个很大的问题,因为我不想执行深度复制,但我的dtor将释放LHS和RHS共享的复制构造函数调用的内存.

c++ memory-management reference vector

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

链接:致命错误LNK1221:无法推断子系统,必须定义

我的解决方案中没有其他错误或警告,这将是很好的,但这个错误让我感到困惑.我有三个项目,一个引用无,另外两个都引用它.

一个是windows服务啊,也就是没有链接的那个,我想这意味着我应该在早上添加服务安装程序类,以为MS示例不打扰MSDN的ServiceBase页面:http ://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase%28v=VS.80%29.aspx

我稍后需要测试这个例子.但是,如果有人可以在同一时间提供帮助,谢谢.

没有引用的项目是一个DLL.另一个是标准的应用程序,直到大约一个月前,我考虑建立的所有应用程序.

service windows-services c++-cli visual-c++-2008-express

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

指向最接近x,y的直线

可能重复:
如何确定点是否在某一线附近?

//Returns the point on the line traced from start to end which
//comes nearest to 500,000, 500,000. The points are scaled between
//1,000,000 and 0 from their original fp types.
Point closestToCentre(Point start, Point end);
Run Code Online (Sandbox Code Playgroud)

有人知道比单步穿过像素更快的方法吗?

能不能比我更警觉地证明他们的数学和几何能力了吗?

_______编辑___________

谢谢Kris,这让我感到困惑:

[X; -a/BX-C/B] = [0; -c/B] - 1/B [-b; 斧头.

现在我看到它只是将矢量(主要是y分量)分成两个,它们组合起来产生相同的结果.得到旧的部分分数脑细胞兴奋一分钟然后:)

_______编辑_________

杰森摩尔,感谢你的灵感,这就是我正在做的,从图形上看,

64x64平方,每条边缘到边缘有两条采样线,并且中心偏离一定距离

我希望这更清楚.

____编辑________

所以我可以合理地期望在我的采样线上采取直角线并从中心运行它但是如何判断它们何时触摸?

在此输入图像描述

我认为克里斯的方程式页面是要走的路.如果你们都告诉我这是一个两步的过程.现在只是两个联立方程,所以我可能不需要Kris的推导.

____编辑_________

无论好坏,我不知道,但作为搜索引擎的stackoverflow之美已向我揭示了几条调查路线.首先,我喜欢这里的第一个解决方案: 点和线段之间的最短距离.

但为了向我自己证明这一点,我需要matti的解决方案在底部(但是一个)的链接:

http://www.topcoder.com/tc?d1=tutorials&d2=geometry1&module=Static

推导是如此简单和优雅,即使我可以遵循它!

鉴于http://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html

algorithm geometry

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

确定是否已安装服务

作为安装我的Windows服务的一部分,我编写了installutil和命令行的替代方法:

IDictionary state = new Hashtable();
using (AssemblyInstaller inst = new AssemblyInstaller(typeof(MyServiceClass).Assembly, args))
{
    IDictionary state = new Hashtable();
    inst.UseNewContext = true;
    //# Service Account Information
    inst.Install(state);
    inst.Commit(state);
}
Run Code Online (Sandbox Code Playgroud)

安装它.我通过检测它是否成功启动来确定是否需要这样做.我预计在请求启动和实际设置它的RunningOk标志之间会出现延迟,而宁愿采用通用的程序化解决方案.(如何在C#中以编程方式安装Windows服务?)http://dl.dropbox.com/u/152585/ServiceInstaller.cs解决方案已有将近3年的历史,并且从我所知道的很少进口DLL. NET似乎打败了它的安全意图.

因此,我想知道用.NET做一个更简洁的方法,如果存在的话?

.net c# windows-installer windows-services

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

在Windows服务和应用程序之间共享内存,最简单的是什么?

我需要我的服务来更新共享内存中的字段,以便客户端应用程序读取和显示.由于Session 0 Isolation,我发现我当前的解决方案无效.

我已经mutex在全局命名空间中重命名es来修复该元素,但它看起来并不像dll会在会话之间共享,尽管Session 0 Isolation的一个解决方案是:

"明确地为任何命名对象选择Local \或Global \命名空间,例如服务提供的事件或映射内存."

我不知道dll的哪个部分可以归类为命名对象,并且需要花费很长时间才能继续重新安装并逐步检查它.

我看到了命名频道的代码卷,并被推迟了.我不想创建一个触及磁盘的文件,因为我想象的是memoryMappedFile解决方案.dll的共享部分可以工作吗?否则最简单的是什么?

public ref class ServerGUIBridge
{
public:
#pragma data_seg(".sdata")
    static int commonIntShouldBeGlobal = 0;
    static bool hasBeenInitializedMakeMeGlobal = false;
#pragma data_seg()
#pragma comment(linker, "/section:.sdata,rws")
Run Code Online (Sandbox Code Playgroud)

我正在使用.NET 2.0,所以请不要使用WCF.

.net service ipc shared-memory .net-2.0

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

通过静态成员函数在 C++ 中初始化非常量静态成员变量

我正在尝试以下操作并在两个日志语句之间导致模拟器崩溃。有什么不对?

protected:
    static int maxSize;
public:
    static void setFontSizeRange(int max) {
        Log("here %d->%d", max, maxSize);
        maxSize = max;
        Log("ok");
    }
Run Code Online (Sandbox Code Playgroud)

我可以获取日志来重现参数,但它在输出静态成员之前崩溃(因此上面显示的第一个日志在引用该参数时将不起作用)。

谢谢。

c++ int initialization static-members

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