相关疑难解决方法(0)

从StringBuilder的末尾修剪空格而不调用ToString().修剪()并返回到新的SB

StringBuilder没有调用ToString()的情况下从空尾修剪空白的有效方法是什么.修剪()并返回到新的SB new StringBuilder(sb.ToString().Trim()).

c# stringbuilder

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

在c#中创建加密随机数的最快,线程安全的方法?

注意到在多线程上并行生成随机数时,加密随机数生成器不是线程安全的.使用的生成器RNGCryptoServiceProvider似乎重复了很长的随机位(128位).重现此代码的代码如下所示.

如果没有使用锁来保护对RNGCryptoServiceProvider实例的访问(这会杀死整个速度点),有没有人有更快的方法来生成加密随机数?

using System;
using System.Runtime.Caching;
using System.Security.Cryptography;
using System.Threading.Tasks;

namespace ParallelRandomness
{
    class Program
    {
        static void Main(string[] args)
        {
            var test = new Test();
            Console.Write("Serialized verion running ...  ");
            test.Run(false);
            Console.WriteLine();
            Console.Write("Parallelized verion running ...  ");
            test.Run(true);
            Console.WriteLine(Environment.NewLine + "Done.");
            Console.ReadLine();
        }
    }

    class Test
    {
        private readonly RNGCryptoServiceProvider _rng = new RNGCryptoServiceProvider();
        private readonly byte[] _randomBytes = new byte[128 / 8];
        private int collisionCount = 0;
        private readonly object collisionCountLock  = new object(); …
Run Code Online (Sandbox Code Playgroud)

c# random parallel-processing multithreading cryptography

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