小编pau*_*ons的帖子

C#threading - 锁定对象

我试图在ac#app中锁定一个"盒装"对象,这不可能吗?

    class t
    {
        System.Object t_x = new object();

        public t(int p)
        {
            t_x = p;

        }

        public void w()
        {
            lock (t_x)
            {
                for (int i = 0; i < 4; i++)
                {

                    {
                        t_x = ((int)t_x) + 1;
                        Console.WriteLine(t_x);
                        Thread.Sleep(1000);
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

在另一个类中,我可以开始2个线程:

        Thread b1 = new Thread(new ThreadStart(t1.w));
        b1.Start();
        Thread b2 = new Thread(new ThreadStart(t1.w));
        b2.Start();
Run Code Online (Sandbox Code Playgroud)

但是该部分未锁定.当我锁定一个任意对象(即一个已创建但未被修改为对象a = new object())时,它会很好地锁定.拳击操作不知何故"depromotes"我的对象?

c# multithreading locking

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

循环C++标题包含

在一个项目中,我有两个类:

// mainw.h

#include "IFr.h"
...
class mainw
{
public:
static IFr ifr;
static CSize=100;
...
};
Run Code Online (Sandbox Code Playgroud)

// IFr.h

#include "mainw.h"
...
class IFr
{
public float[mainw::CSize];
};
Run Code Online (Sandbox Code Playgroud)

但我无法编译此代码,在该static IFr ifr;行收到错误.是否禁止这种交叉包含?

c++ static circular-dependency include

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

使用C++中从C库返回的指针

我使用的是用C开发的库(特别是:HTK).我对源进行了一些修改,并尝试从函数中获取指针(到链表的开头).不要过多细节; 说我有一个名为OutType的结构.在我的C++代码中,我声明: OutType*Out ; 并将其传递给某个函数LName(.....,OutType*Out) 现在,在C库中,LName接受参数Out,并调用名为SaveH的函数,其中Out是返回值(Out = SaveH(... ))并且在SaveH中,Out被malloc化为OutType returnOut =(OutType*)malloc(1,sizeof(OutType)); 据我所知,Out完全是malloc'ed,在LName函数中我可以得到分配的内存区域的地址.但是当我返回到我的C++代码,我调用LName并传递Out作为参数时,该参数始终为0作为地址.如果我保持一切相同,但只是更改SaveH,以便Out不是返回值,而是一个参数如SaveH(....,OutType*Out)并在传递一切之前在C++代码中分配该值很好.这是正常的吗?使用C++代码在C库中分配指针有问题吗?谢谢

c++

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

ADO.NET实体框架用于插入/更新/删除的自定义SQL表达式

在ScottGu的博客中,他展示了如何覆盖Linq to SQL类的方法,以便可以在.NET端自定义地覆盖对数据的修改.

http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions.aspx(插入/更新/删除部分的自定义SQL表达式) )

有没有办法在EF中实现相同的功能?

entity-framework linq-to-sql

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

QThread没有开始

我尝试在QT中创建一个线程,可以声明,创建和启动它,但它不会触发Run函数(我可以看到通过在该函数中放置一个断点)

VT.h:

class VT : public QThread
{

 public:
    void Run();
};
Run Code Online (Sandbox Code Playgroud)

VT.cpp

void VT::Run()
{
..
}
Run Code Online (Sandbox Code Playgroud)

并在main.cpp中:

VT vt;
vt.Start();
// starts ok but no action
Run Code Online (Sandbox Code Playgroud)

我在VT.h中包含其他标题,它们是否阻止?有些不妥.问题?

c++ qt

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