Tag: C#的

使用Thread.Start和QueueUserWorkItem的优点

在multithreading的.NET编程中,使用ThreadPool.QueueUserWorkItem与通过新的Thread()和Thread.Start()启动我自己的线程有什么关系? 在一个服务器应用程序(比方说,一个ASP.NET应用程序或WCF服务),我认为ThreadPool总是在那里和可用。 怎么样在客户端应用程序,如WinForms或WPF应用程序? 是否有成本来启动线程池? 如果我只想要3或4个线程在一些计算上短时间工作,对QUWI或Thread.Start()更好。

打开xml excel读取单元格的值

我正在使用Open XML SDK来打开一个Excel xlsx文件,并尝试读取每个工作表中位置A1上的单元格值。 我使用下面的代码: using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(openFileDialog1.FileName, false)) { var sheets = spreadsheetDocument.WorkbookPart.Workbook.Descendants<Sheet>(); foreach (Sheet sheet in sheets) { WorksheetPart worksheetPart = (WorksheetPart)spreadsheetDocument.WorkbookPart.GetPartById(sheet.Id); Worksheet worksheet = worksheetPart.Worksheet; Cell cell = GetCell(worksheet, "A", 1); Console.Writeline(cell.CellValue.Text); } } private static Cell GetCell(Worksheet worksheet, string columnName, uint rowIndex) { Row row = GetRow(worksheet, rowIndex); if […]

如何等待非subprocess退出

对于subprocess,可以使用wait()和waitpid()函数暂停当前进程的执行,直到subprocess退出。 但是这个函数不能用于非subprocess。 是否还有另一个function,可以等待任何进程退出?

如何避免在replace所有元素或添加元素集时多次触发ObservableCollection.CollectionChanged

我有ObservableCollection<T>集合,我想用新的元素集合来replace所有元素,我可以这样做: collection.Clear(); 要么: collection.ClearItems(); (顺便说一句,这两种方法有什么区别?) 我也可以使用foreach来collection.Add一个接一个地添加,但是会多次触发 添加元素集合时也是如此。 编辑: 我在这里find了一个好的库: 增强的ObservableCollection能够延迟或禁用通知,但它似乎不支持silverlight。

在C ++中预增量比后递增快 – true? 如果是的话,为什么呢?

可能重复: 在C ++中,i ++和++ i之间有性能差异吗? 我听说preincrements(++ i)比C ++中的postincrements(i ++)快一点。 真的吗? 这是什么原因?

点后只留下两位小数点

public void LoadAveragePingTime() { try { PingReply pingReply = pingClass.Send("logon.chronic-domination.com"); double AveragePing = (pingReply.RoundtripTime / 1.75); label4.Text = (AveragePing.ToString() + "ms"); } catch (Exception) { label4.Text = "Server is currently offline."; } } 目前我的标签4.Text得到的是类似于“187.371698712637”。 我需要它显示像这样:“187.34” DOT后只有两个职位。 有人可以帮我吗?

编译时断言?

有什么办法可以断言两个常量expression式在编译时是相等的吗? 例如我想这会导致编译时错误 enum { foo=263, bar=264 }; SOME_EXPRESSION(foo,bar) 但我希望这不会导致错误 enum { foo=263, bar=263 }; SOME_EXPRESSION(foo,bar) 编辑:上面是简化了。 我的情况更像 some_other_file_I_dont_control.h: class X { public: enum { foo=263 }; } my_file.h: enum { bar=something+somethingelse }; // bar should equal X::foo SOME_EXPRESSION(X::foo, bar)

C预处理器:在#define中使用#if?

我想写一个基于它的参数的布尔值吐出代码的macros。 所以说DEF_CONST(true)应该扩展到const ,并且DEF_CONST(false)应该被扩展成什么都不是。 很明显,以下内容不起作用,因为我们不能在#defines中使用另一个预处理器: #define DEF_CONST(b_const) \ #if (b_const) \ const \ #endif 任何想法如何做到这一点?

Windows和控制台应用程序之间的区别

Windows和控制台应用程序有什么不同? 在Visual C ++中创build一个新项目时,它会要求select上述任一项。

如何水平打印数组的内容?

为什么控制台窗口不是水平地而是垂直地打印数组内容? 有没有办法改变这个? 如何显示我的数组的内容而不是垂直,与Console.WriteLine() ? 例如: int[] numbers = new int[100] for(int i; i < 100; i++) { numbers[i] = i; } for (int i; i < 100; i++) { Console.WriteLine(numbers[i]); }