小编Che*_*ing的帖子

StringBuilder 作为类成员?

创建StringBuilder类的成员并在要进行字符串连接时在类方法中使用它是否有效(或必要?)?

或者只是StringBuidler()在此类操作之前使用 new ?

我怀疑如果那里有StringBuilder准备使用它是有效的。

c# stringbuilder

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

字典 TryGetValue 输出参数

TryGetValue 是否更改输入参数?

当使用 TryGetValue 时,我倾向于这样做:

Dictionary<int, long> myDic;
long lValue = -1;
long lTemp1;

if( myDic.TryGetValue(100, out lTemp1)){
    lValue = lTemp1;
}
Run Code Online (Sandbox Code Playgroud)

我应该直接这样写吗?

myDic.TryGetValue(nKeyToLookup, out lValue);
Run Code Online (Sandbox Code Playgroud)

c# dictionary

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

开关盒的替代品

我想知道这种切换用例是否合适,还是有其他替代方案(模式)?

以下是我的计划的一部分:

基础是我正在做一系列的行动

  1. 程序控制一般是按照案例的顺序逐个进行;

  2. 通常任何特定情况都没有在第一次调用中完成,我们必须等到procX returns true.(等待文书回应或行动完成);

  3. 可以跳转到特定case的(StepCurrent在采样代码中更改).

我发现这种switch- case很难维护,特别是通过改变StepCurrent直接控制流程.代码看起来很难看.

有没有更好的方法?

注意:虽然我使用的是C#,但问题可能不仅限于此.

    while (true)
        {
            if (sig_IsExit())
            {
                break;
            }

            Thread.Sleep(500);

            bRetSts = false;
            switch (StepCurrent) // nSeq)
            {
                case 0:
                     bRetSts = proc0();
                     break;

                case 1:

                     bRetSts = proc1();
                    break;
                case 2:
                     bRetSts = proc2();
                    break;

                case 3:
                     bRetSts = proc3();
                    break;

                case 4:
                   ...
            }

            if( bRetSts )
                StepCurrent++;
        }
Run Code Online (Sandbox Code Playgroud)

c# controls sequence switch-statement

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

更新没有锁定保护的线程使用的bool值

我想知道,如果尝试更新线程使用的布尔值,则保证成功,没有任何锁定保护.

类似下面的情况:当threadproc正在运行时,Stop()更改m_ThreadActive的布尔成员不会有任何问题吗?

private bool m_ThreadActive = true;

public void threadproc
{
    while (m_ThreadActive)
    {
    ...
    }
}

public void Stop()
{
   m_ThreadActive = false;
}
Run Code Online (Sandbox Code Playgroud)

.net c# concurrency multithreading thread-safety

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