小编Ham*_*yan的帖子

无锁并发队列

此代码段ConcurrentQueue来自此处给出的实现。

internal bool TryPeek(out T result) 
{
    result = default(T); 
    int lowLocal = Low;
    if (lowLocal > High)
        return false;
    SpinWait spin = new SpinWait(); 
    while (m_state[lowLocal] == 0)
    { 
        spin.SpinOnce(); 
    }
    result = m_array[lowLocal]; 
    return true;
}
Run Code Online (Sandbox Code Playgroud)

它真的是无锁的,而不是旋转的吗?

c# lock-free

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

在一个步骤中选择具有最大变量的行

我有一个看起来像这样的表:

--------EXAMPLE---------------------------------------------------------
Cat1           Cat2          Value
a              NULL          131
b              e1            143
a              e2            135
c              NULL          136
a              e1            132
a              NULL          13
c              e4            1
Run Code Online (Sandbox Code Playgroud)

我想从上面选择具有Cat1中各种类型的最高值的行.所以,我的答案如下:

--------EXAMPLE---------------------------------------------------------
Cat1           Cat2          Value
b              e1            143
a              e2            135
c              NULL          136
Run Code Online (Sandbox Code Playgroud)

我正在使用Microsoft SQL,我正在寻找一些有效的东西,因为我的表中有大约4000万行需要操作.

谢谢!!

sql sql-server

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

在List <object>中查找对象的更有效方法

假设arrRowLength&arrColLength已经被正确定义和分配,并且MyObjectList<MyObject>已经实例化并填充了一些对象.

class MyObject
{
    public MyObject() { }
    public int rowIndex {get; set;}
    public int colIndex {get; set;}
} 

List<MyObject> MyObjectList = new List<MyObject>();

for (int r = 1; r <= arrRowLength; r++)
{
    for (int c = 1; c <= arrColLength; c++)
    {
         MyObject mo = MyObjectList.Find(item => (item.rowIndex == r && item.colIndex == c));
         if(mo != null)
         {
              //found, do sth...
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

以上就是我目前的做法,以找到一个MyObject从对象MyObjectList,其中rowIndexcolIndex …

.net c# list

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

LINQ:单个列表,由相同类型的对象集合的多个属性组成

 var userIds = books.Select( i => new{i.CreatedById,i.ModifiedById}).Distinct();

 var lst = from i in userIds select i.CreatedById;

 var lst1 = from i in userIds select i.ModifiedById;

 var lstfinal = lst.Concat(lst1).Distinct();
Run Code Online (Sandbox Code Playgroud)

任何其他方式得到相同的结果???

这里:书籍是书籍对象的集合,即IEnumerable.

谢谢

linq entity-framework

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

为什么WaitForExit在我的C#代码中不是可用的方法?

下面的代码工作正常,但我需要添加WaitForExit方法.但它没有显示可用.我错过了什么?谢谢.

ProcessStartInfo process = new ProcessStartInfo("cmd.exe", @"/C " + AppDomain.CurrentDomain.BaseDirectory + "Setupws.exe");
process.Verb = "runas";
process.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(process);
Run Code Online (Sandbox Code Playgroud)

c# methods process

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

SQL查询在两个日期之间选择错误

我正在努力处理SQL中的查询,因此需要您的帮助.此查询未提供我想要的确切结果.我需要提取两个日期之间的所有日期.

我尝试了两个查询:

SELECT a.MemberID,CONVERT(varchar(12), b.BirthDate, 101) AS BirthDate
FROM Members_Hired AS a
    INNER JOIN Members AS b
        ON a.ReferenceID = b.RecordID
WHERE (CONVERT(varchar(12), b.BirthDate, 101) >= '02/01/2013'
    and CONVERT(varchar(12), b.BirthDate, 101) <= '02/27/2013')
Run Code Online (Sandbox Code Playgroud)

SELECT a.MemberID,CONVERT(varchar(12), b.BirthDate, 101) AS BirthDate
FROM Members_Hired AS a
    INNER JOIN Members AS b
        ON a.ReferenceID = b.RecordID
WHERE (CONVERT(varchar(12), b.BirthDate, 101) BETWEEN '02/01/2013' and '02/27/2013')
Run Code Online (Sandbox Code Playgroud)

这给出了日期的结果'02/05/1990','02/17/1990'也.它只考虑月份和日期,而不是一年.

sql sql-server sql-server-2008

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

MySql使用subselect更新

我有一个mysql数据库表,其中有一个电子邮件列,最多可以包含两个以分号分隔的电子邮件.我想要实现的是将电子邮件字段中的第二个电子邮件地址写入另一列电子邮件2这是我迄今为止尝试过的但没有成功:

UPDATE user AS u
SET email2 = (SELECT SUBSTRING_INDEX(email, ';', -1)
              FROM user
              WHERE user.id=u.id)
WHERE username LIKE "%;%"
Run Code Online (Sandbox Code Playgroud)

在搜索这个问题时,有一些解决方案在子查询中没有第二个子查询,但它们都没有真正匹配我的问题.

如果有人有解决方案,请发布.我被困在了2个小时.

非常感谢你.

mysql subquery

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