小编Opt*_*max的帖子

字体真棒4.0.0缺少图标

仅仅是我还是在FontAwesome 4.0.0中缺少FontAwesome 3.xx中的图标?如果是这样,这肯定会使FontAwesome对我来说不那么棒......

例如,我似乎无法找到相当于icon-remove(没有fa-remove,或fa-delete据我所知).

必须重命名我的应用程序中的所有图标引用是令人讨厌的.无法重现3.0中的可能性真的非常糟糕.

无法再访问v3.x cheatsheet和其他文档:不可接受!

font-awesome

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

TcpClient通过NetworkStream BinaryReader / BinaryWriter传输的字节计数

我使用围绕构建的网络协议TcpClientBinaryReader用于从底层读取字节NetworkStream(相反,BinaryWriter用于写入)。

该协议以UTF-8编码传输字符串,并正在调用reader.ReadString()以从流中读取它们(writer.Write(someStr)用于写入)。

是否有一种简单的方法来确定从NetworkStream读取(或写入)的字节数,而不必跳过箍来计算所传输字符串的实际字节长度?

请注意,BinaryWriter.Write()在字符串的实际字节之前写入一个7位编码的整数,这会使任何手动计算变得更加复杂。

另请注意,NetworkStreamPosition属性不支持该属性,因为它抱怨无法使用Seek

此外,我想避免将必须复制/扫描数据的中介引入到读/写过程中,以免影响整个系统的性能。

是否有一种简单,高级的方法来计数通过网络接口传递的字节,而无需手动考虑字符串的编码和长度?

c# network-programming networkstream tcpclient binaryreader

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

异步枚举文件夹

我正在尝试实现一个通用文件系统爬虫,例如 - 能够枚举从给定根开始的所有子文件夹.我想使用async/await/Task范例来做到这一点.

以下是我的代码.它有效,但我怀疑它可以改进.特别是,注释Task.WaitAll会导致深层目录树中出现不必要的等待,因为循环在每个树级别等待而不是立即继续处理要添加到的新文件夹folderQueue.

不知怎的,我想包括被添加到新的文件夹folderQueue中的任务列表中正在等待上Task.WaitAll() ,而WaitAll过程中.这甚至可能吗?

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;

class FileSystemCrawlerSO
{
    static void Main(string[] args)
    {
        FileSystemCrawlerSO crawler = new FileSystemCrawlerSO();
        Stopwatch watch = new Stopwatch();
        watch.Start();
        crawler.CollectFolders(@"d:\www");
        watch.Stop();
        Console.WriteLine($"Collected {crawler.NumFolders:N0} folders in {watch.ElapsedMilliseconds} milliseconds.");
        if (Debugger.IsAttached)
            Console.ReadKey();
    }


    public int NumFolders { get; set; }

    private readonly Queue<DirectoryInfo> folderQueue;


    public FileSystemCrawlerSO()
    {
        folderQueue = new Queue<DirectoryInfo>();
    }


    public void …
Run Code Online (Sandbox Code Playgroud)

c# filesystems directory asynchronous async-await

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

将流叠加在字节数组之上

C#/.NET 中是否有任何方法可以“叠加”或映射 a 到现有就地MemoryStream之上,以便数据不会被不必要地复制?byte[]

在尝试将 a 转换byte[]为流时,标准解决方案是使用 theMemoryStream及其Write函数,如下所示:

byte[] myArray = new byte[10]; // or, e.g. retrieve from DB
MemoryStream stream = new MemoryStream();
stream.Write(myArray, 0, myArray.Length);
Run Code Online (Sandbox Code Playgroud)

或者,这可以缩短为:

byte[] myArray = new byte[10]; // or, e.g. retrieve from DB
MemoryStream stream = new MemoryStream(myArray);
Run Code Online (Sandbox Code Playgroud)

这实际上是同一件事。

这样做的问题是必须将数组的全部内容复制到流中,从而占用 2 倍的内存。考虑到字节数组可能非常大,这似乎不太令人满意。数据已经在内存中的连续块中,所以......

内存流可以以某种方式就地映射到字节数组吗?

.net c# binary-data .net-core

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