相关疑难解决方法(0)

何时使用.NET BufferedStream类?

MSDN网站上指出:

缓冲区是内存中用于缓存数据的字节块,从而减少了对操作系统的调用次数.缓冲区可提高读写性能.缓冲区可用于读取或写入,但不能同时使用.BufferedStream的Read和Write方法自动维护缓冲区.

我应该在每个可能的场合使用这门课吗?

.net performance buffer

52
推荐指数
5
解决办法
3万
查看次数

Console.WriteLine会阻止吗?

Console.WriteLine在输出写入或立即返回之前是否阻塞?

如果它确实阻塞了是否有一种向控制台写入异步输出的方法?

.net console multithreading

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

C#比Console.Write()更快?

我正在制作游戏并重新绘制游戏区并不是很好用Console.Write()有没有什么方法可以更快地重写整个字段而不会让它看起来"滞后"?Playfield中的所有内容都在移动,但是只有不同于0的元素才有对象..(你可以查看完整的代码http://pastebin.com/TkPd37xD,如果我的描述不是,请查看我在说什么足够)

for (int Y = 0; Y < playfield.GetLength(0); Y++)
{
    for (int X = 0; X < playfield.GetLength(1); X++)
    {
        //destroying the row when it reaches the top
        if (playfield[0, X] != 0)
        {
            for (int i = 0; i < playfield.GetLength(1); i++)
            {
                playfield[0, X] = 0;
                Console.SetCursorPosition(X, 0);
                Console.Write(" ");
            }
        }
        if (playfield[Y, X] == 3)
        {
            playfield[Y - 1, X] = 3;
            playfield[Y, X] = 0;
        }
        else if (playfield[Y, X] == 1) …
Run Code Online (Sandbox Code Playgroud)

c#

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

Console.Writeline对性能的影响

我有一个有4个线程的应用程序.每个线程实际上都是一个Timer,并在特定的时间间隔内完成单独的工作.这些线程通过使用显示其日志Console.Writeline.性能在此应用程序中非常重要.我想知道删除是否Console.Writeline会调整此应用程序的性能?

c# multithreading

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

如何以OpenXML格式更快地阅读

当我使用OLEDB时,从Excel工作表中读取3200行只需2-3秒.现在我改为OpenXML格式,现在从Excel表读取3200行需要1分钟以上.

以下是我的代码:

public static DataTable ReadExcelFileDOM(string filename) 
{ 
    DataTable table; 

    using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(filename, true)) 
    { 
        WorkbookPart workbookPart = myDoc.WorkbookPart; 
        Sheet worksheet = workbookPart.Workbook.Descendants<Sheet>().First(); 
        WorksheetPart worksheetPart = 
         (WorksheetPart)(workbookPart.GetPartById(worksheet.Id)); 
        SheetData sheetData = 
            worksheetPart.Worksheet.Elements<SheetData>().First(); 
        List<List<string>> totalRows = new List<List<string>>(); 
        int maxCol = 0; 

        foreach (Row r in sheetData.Elements<Row>()) 
        { 
            // Add the empty row. 
            string value = null; 
            while (totalRows.Count < r.RowIndex - 1) 
            { 
                List<string> emptyRowValues = new List<string>(); 
                for (int i = 0; i < maxCol; i++) 
                { 
                    emptyRowValues.Add(""); …
Run Code Online (Sandbox Code Playgroud)

.net c# excel openxml c#-4.0

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

C#表现奇怪的情况

我正在用C#测试一些案例以考虑性能方面的一些基本要素,而我在测试时遇到了一个奇怪的情况

 for (int i = 0; i < 30; i++)
 {
     DateTime d = DateTime.Now;
     print();
     result.Add  ((DateTime.Now - d));
 }

 foreach(TimeSpan t in result)
     Console.WriteLine(t.ToString());
Run Code Online (Sandbox Code Playgroud)

虽然打印功能很简单:

public static void print ()
{
     for (int i = 0; i < 10000; i++)
     {
         Console.WriteLine( string.Format("{0}", i));       
     }
}
Run Code Online (Sandbox Code Playgroud)

我对结果感到震惊,而前三个循环花了大约5秒钟,而之后花了大约0.5秒.这是一些:

00:00:05.6212696
00:00:05.6072002
00:00:05.5837965
00:00:01.9451673
00:00:00.5526335
00:00:00.5540554
00:00:00.5676418
00:00:00.5372442
00:00:00.5772550
Run Code Online (Sandbox Code Playgroud)

我只是想知道为什么在第三次迭代后它变好了近10倍?

c# performance time

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

标签 统计

c# ×4

.net ×3

multithreading ×2

performance ×2

buffer ×1

c#-4.0 ×1

console ×1

excel ×1

openxml ×1

time ×1